I grabbed the below snapshot, built the application. It died with the
usual
core dump. I have attached a gdb session with backtrace and details
on the top-most stack frames. The second frame in the backtrace looks
a bit odd.
Looking at the back trace I can make an educated guess what purify
is working on. (I do not know the internals of CMUCL so it is a bit
sketchy
but I do know the internals of our data structures.) The main data
structure
in our application is an abstract syntax tree (built by various parsers
that we
have). The tree is mainly tree-like but there are some none tree links.
The
nodes in the tree are instances of a defstruct that has about 6 slots in
it. One
of the slots points off to a vector where we keep additional info about
the
node. The vector is basically treated like a plist, i.e., alternating
elements
are indicators or values. Many of the values are obviously pointing off
to other nodes. The fact that purify is working on instances and
vectors
in a rather tight loop makes me think it is walking through one of these
trees.
Hope this helps. If there is other info from the core file that you
want, just
let me know.
-bill-
Raymond Toy wrote:
> >>>>> "William" == William Brew <[EMAIL PROTECTED]> writes:
>
> William> Is it cmucl-2004-04-23-sparcv9-solaris8.tar.bz2 ?
>
> Oops, I guess I should have mentioned the name. Yes, that's the one.
> It also has the big static and read-only spaces.
>
> Ray
-- Attached file included as plaintext by Listar --
-- File: 2004_04_23-gdb-session.text
king-sun bbrew 69> gdb /org/develop/reasoning/lisp/cmucl/ss2004-04-23/bin/lisp core
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.4"...
Core was generated by `/org/develop/reasoning/lisp/cmucl/ss2004-04-23/bin/lisp -batch
-dynamic-space-s'.
Program terminated with signal 11, Segmentation Fault.
Reading symbols from /usr/lib/libsocket.so.1...done.
Loaded symbols for /usr/lib/libsocket.so.1
Reading symbols from /usr/lib/libnsl.so.1...done.
Loaded symbols for /usr/lib/libnsl.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/lib/libm.so.1...done.
Loaded symbols for /usr/lib/libm.so.1
Reading symbols from /usr/lib/libc.so.1...done.
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/lib/libmp.so.2...done.
Loaded symbols for /usr/lib/libmp.so.2
Reading symbols from /usr/platform/SUNW,Ultra-60/lib/libc_psr.so.1...done.
Loaded symbols for /usr/platform/SUNW,Ultra-60/lib/libc_psr.so.1
#0 pscav (addr=0x28da52f8, nwords=1, constant=0)
at ../../src/lisp/purify.c:1180
1180 ../../src/lisp/purify.c: No such file or directory.
(gdb) bt
#0 pscav (addr=0x28da52f8, nwords=1, constant=0)
at ../../src/lisp/purify.c:1180
#1 0x8 in ?? ()
#2 0x1ab64 in ptrans_instance (thing=1140738133, header=3, constant=0)
at ../../src/lisp/purify.c:587
#3 0x1b5e0 in pscav (addr=0x28da52d8, nwords=6, constant=0)
at ../../src/lisp/purify.c:1196
#4 0x1b070 in ptrans_list (thing=671088651, constant=0)
at ../../src/lisp/purify.c:944
#5 0x1b5c8 in pscav (addr=0x28da526c, nwords=26, constant=0)
at ../../src/lisp/purify.c:1192
#6 0x1acf0 in ptrans_vector (thing=685396527, bits=26, extra=685396520,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
#7 0x1b174 in ptrans_otherptr (thing=685396527, header=43, constant=0)
at ../../src/lisp/purify.c:1072
#8 0x1b5f8 in pscav (addr=0x28da5220, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
#9 0x1aa78 in ptrans_boxed (thing=685396509, header=3, constant=0)
at ../../src/lisp/purify.c:540
#10 0x1ab64 in ptrans_instance (thing=1143967989, header=3, constant=0)
at ../../src/lisp/purify.c:587
#11 0x1b5e0 in pscav (addr=0x28da512c, nwords=22, constant=0)
at ../../src/lisp/purify.c:1196
---Type <return> to continue, or q <return> to quit---
#12 0x1acf0 in ptrans_vector (thing=685396175, bits=22, extra=685396168,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
#13 0x1b174 in ptrans_otherptr (thing=685396175, header=47, constant=0)
at ../../src/lisp/purify.c:1072
#14 0x1b5f8 in pscav (addr=0x28da50c0, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
#15 0x1aa78 in ptrans_boxed (thing=685396157, header=3, constant=0)
at ../../src/lisp/purify.c:540
#16 0x1ab64 in ptrans_instance (thing=1139587029, header=3, constant=0)
at ../../src/lisp/purify.c:587
#17 0x1b5e0 in pscav (addr=0x28da50a0, nwords=6, constant=0)
at ../../src/lisp/purify.c:1196
#18 0x1b070 in ptrans_list (thing=671088651, constant=0)
at ../../src/lisp/purify.c:944
#19 0x1b5c8 in pscav (addr=0x28da508c, nwords=4, constant=0)
at ../../src/lisp/purify.c:1192
#20 0x1acf0 in ptrans_vector (thing=685396055, bits=4, extra=685396048,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
#21 0x1b174 in ptrans_otherptr (thing=685396055, header=19, constant=0)
at ../../src/lisp/purify.c:1072
#22 0x1b5f8 in pscav (addr=0x28da5048, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
#23 0x1aa78 in ptrans_boxed (thing=685396037, header=3, constant=0)
---Type <return> to continue, or q <return> to quit---
at ../../src/lisp/purify.c:540
#24 0x1ab64 in ptrans_instance (thing=1143619445, header=3, constant=0)
at ../../src/lisp/purify.c:587
#25 0x1b5e0 in pscav (addr=0x28da5038, nwords=2, constant=0)
at ../../src/lisp/purify.c:1196
#26 0x1b070 in ptrans_list (thing=671088651, constant=0)
at ../../src/lisp/purify.c:944
#27 0x1b5c8 in pscav (addr=0x28da4fd4, nwords=24, constant=0)
at ../../src/lisp/purify.c:1192
#28 0x1acf0 in ptrans_vector (thing=685395839, bits=24, extra=685395832,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
#29 0x1b174 in ptrans_otherptr (thing=685395839, header=47, constant=0)
at ../../src/lisp/purify.c:1072
#30 0x1b5f8 in pscav (addr=0x28da4f70, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
#31 0x1aa78 in ptrans_boxed (thing=685395821, header=3, constant=0)
at ../../src/lisp/purify.c:540
#32 0x1ab64 in ptrans_instance (thing=1139587061, header=3, constant=0)
at ../../src/lisp/purify.c:587
#33 0x1b5e0 in pscav (addr=0x28da4ecc, nwords=2, constant=0)
at ../../src/lisp/purify.c:1196
#34 0x1acf0 in ptrans_vector (thing=685395599, bits=2, extra=685395592,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
---Type <return> to continue, or q <return> to quit---
#35 0x1b174 in ptrans_otherptr (thing=685395599, header=19, constant=0)
at ../../src/lisp/purify.c:1072
#36 0x1b5f8 in pscav (addr=0x28da4e80, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
#37 0x1aa78 in ptrans_boxed (thing=685395581, header=3, constant=0)
at ../../src/lisp/purify.c:540
#38 0x1ab64 in ptrans_instance (thing=1141428261, header=3, constant=0)
at ../../src/lisp/purify.c:587
#39 0x1b5e0 in pscav (addr=0x28da4bac, nwords=6, constant=0)
at ../../src/lisp/purify.c:1196
#40 0x1acf0 in ptrans_vector (thing=685394807, bits=6, extra=685394800,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
#41 0x1b174 in ptrans_otherptr (thing=685394807, header=21, constant=0)
at ../../src/lisp/purify.c:1072
#42 0x1b5f8 in pscav (addr=0x28da4b68, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
#43 0x1aa78 in ptrans_boxed (thing=685394789, header=3, constant=0)
at ../../src/lisp/purify.c:540
#44 0x1ab64 in ptrans_instance (thing=1143085813, header=3, constant=0)
at ../../src/lisp/purify.c:587
#45 0x1b5e0 in pscav (addr=0x28da4b34, nwords=10, constant=0)
at ../../src/lisp/purify.c:1196
#46 0x1acf0 in ptrans_vector (thing=685394703, bits=10, extra=685394696,
---Type <return> to continue, or q <return> to quit---
boxed=1, constant=0) at ../../src/lisp/purify.c:668
#47 0x1b174 in ptrans_otherptr (thing=685394703, header=21, constant=0)
at ../../src/lisp/purify.c:1072
#48 0x1b5f8 in pscav (addr=0x28da4b00, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
#49 0x1aa78 in ptrans_boxed (thing=685394685, header=3, constant=0)
at ../../src/lisp/purify.c:540
#50 0x1ab64 in ptrans_instance (thing=1142756021, header=3, constant=0)
at ../../src/lisp/purify.c:587
#51 0x1b5e0 in pscav (addr=0x28da4ac4, nwords=12, constant=0)
at ../../src/lisp/purify.c:1196
#52 0x1acf0 in ptrans_vector (thing=685394599, bits=12, extra=685394592,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
#53 0x1b174 in ptrans_otherptr (thing=685394599, header=21, constant=0)
at ../../src/lisp/purify.c:1072
#54 0x1b5f8 in pscav (addr=0x28da4a98, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
#55 0x1aa78 in ptrans_boxed (thing=685394581, header=3, constant=0)
at ../../src/lisp/purify.c:540
#56 0x1ab64 in ptrans_instance (thing=1143085797, header=3, constant=0)
at ../../src/lisp/purify.c:587
#57 0x1b5e0 in pscav (addr=0x28da4a64, nwords=10, constant=0)
at ../../src/lisp/purify.c:1196
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) info frame
Stack level 0, frame at 0xff3f0038:
pc = 0x1b540 in pscav (../../src/lisp/purify.c:1180); saved pc 0x8
called by frame at 0xff3f00a8
source language c.
Arglist at 0xff3f0038, args: addr=0x28da52f8, nwords=1, constant=0
Locals at 0xff3f0038,
(gdb) info args
addr = (lispobj *) 0x28da52f8
nwords = 1
constant = 0
(gdb) info locals
thing = 1147915623
thingp = (lispobj *) 0x446bcd60
header = 1
count = 1
(gdb) up
#1 0x8 in ?? ()
(gdb) info frame
Stack level 1, frame at 0xff3f00a8:
pc = 0x8; saved pc 0x1ab64
called by frame at 0xff3f0118, caller of frame at 0xff3f0038
Arglist at 0xff3f00a8, args:
Locals at 0xff3f00a8,
(gdb) info args
No symbol table info available.
(gdb) info locals
No symbol table info available.
(gdb) up
#2 0x1ab64 in ptrans_instance (thing=1140738133, header=3, constant=0)
at ../../src/lisp/purify.c:587
587 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 2, frame at 0xff3f0118:
pc = 0x1ab64 in ptrans_instance (../../src/lisp/purify.c:587);
saved pc 0x1b5e0
called by frame at 0xff3f0188, caller of frame at 0xff3f00a8
source language c.
Arglist at 0xff3f0118, args: thing=1140738133, header=3, constant=0
Locals at 0xff3f0118,
(gdb) info args
thing = 1140738133
header = 3
constant = 0
(gdb) info locals
layout = 1147915616
pure = 671088651
(gdb) up
#3 0x1b5e0 in pscav (addr=0x28da52d8, nwords=6, constant=0)
at ../../src/lisp/purify.c:1196
1196 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 3, frame at 0xff3f0188:
pc = 0x1b5e0 in pscav (../../src/lisp/purify.c:1196); saved pc 0x1b070
called by frame at 0xff3f01f8, caller of frame at 0xff3f0118
source language c.
Arglist at 0xff3f0188, args: addr=0x28da52d8, nwords=6, constant=0
Locals at 0xff3f0188,
(gdb) info args
addr = (lispobj *) 0x28da52d8
nwords = 6
constant = 0
(gdb) info locals
thing = 1140738133
thingp = (lispobj *) 0x446bcd60
header = 694
count = 694
(gdb) up
#4 0x1b070 in ptrans_list (thing=671088651, constant=0)
at ../../src/lisp/purify.c:944
944 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 4, frame at 0xff3f01f8:
pc = 0x1b070 in ptrans_list (../../src/lisp/purify.c:944); saved pc 0x1b5c8
called by frame at 0xff3f0268, caller of frame at 0xff3f0188
source language c.
Arglist at 0xff3f01f8, args: thing=671088651, constant=0
Locals at 0xff3f01f8,
(gdb) info args
thing = 671088651
constant = 0
(gdb) info locals
old = (struct cons *) 0x47d7f4b8
new = (struct cons *) 0x28da52e8
orig = (struct cons *) 0x28da52d8
length = 3
(gdb) up
#5 0x1b5c8 in pscav (addr=0x28da526c, nwords=26, constant=0)
at ../../src/lisp/purify.c:1192
1192 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 5, frame at 0xff3f0268:
pc = 0x1b5c8 in pscav (../../src/lisp/purify.c:1192); saved pc 0x1acf0
called by frame at 0xff3f02d8, caller of frame at 0xff3f01f8
source language c.
Arglist at 0xff3f0268, args: addr=0x28da526c, nwords=26, constant=0
Locals at 0xff3f0268,
(gdb) info args
addr = (lispobj *) 0x28da526c
nwords = 26
constant = 0
(gdb) info locals
thing = 1205335211
thingp = (lispobj *) 0x446bcd60
header = 1140738133
count = 1140738133
(gdb) up
#6 0x1acf0 in ptrans_vector (thing=685396527, bits=26, extra=685396520,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
668 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 6, frame at 0xff3f02d8:
pc = 0x1acf0 in ptrans_vector (../../src/lisp/purify.c:668); saved pc 0x1b174
called by frame at 0xff3f0348, caller of frame at 0xff3f0268
source language c.
Arglist at 0xff3f02d8, args: thing=685396527, bits=26, extra=685396520,
boxed=1, constant=0
Locals at 0xff3f02d8,
(gdb) info args
thing = 685396527
bits = 26
extra = 685396520
boxed = 1
constant = 0
(gdb) info locals
vector = (struct vector *) 0x476b02d8
nwords = 43
result = 685396527
new = (lispobj *) 0x28da5228
(gdb) up
#7 0x1b174 in ptrans_otherptr (thing=685396527, header=43, constant=0)
at ../../src/lisp/purify.c:1072
1072 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 7, frame at 0xff3f0348:
pc = 0x1b174 in ptrans_otherptr (../../src/lisp/purify.c:1072);
saved pc 0x1b5f8
called by frame at 0xff3f03b8, caller of frame at 0xff3f02d8
source language c.
Arglist at 0xff3f0348, args: thing=685396527, header=43, constant=0
Locals at 0xff3f0348,
(gdb) info args
thing = 685396527
header = 43
constant = 0
(gdb) info locals
No locals.
(gdb) up
#8 0x1b5f8 in pscav (addr=0x28da5220, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
1200 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 8, frame at 0xff3f03b8:
pc = 0x1b5f8 in pscav (../../src/lisp/purify.c:1200); saved pc 0x1aa78
called by frame at 0xff3f0428, caller of frame at 0xff3f0348
source language c.
Arglist at 0xff3f03b8, args: addr=0x28da5220, nwords=1, constant=0
Locals at 0xff3f03b8,
(gdb) info args
addr = (lispobj *) 0x28da5220
nwords = 1
constant = 0
(gdb) info locals
thing = 1198195423
thingp = (lispobj *) 0x446bcd60
header = 50
count = 50
(gdb) up
#9 0x1aa78 in ptrans_boxed (thing=685396509, header=3, constant=0)
at ../../src/lisp/purify.c:540
540 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 9, frame at 0xff3f0428:
pc = 0x1aa78 in ptrans_boxed (../../src/lisp/purify.c:540); saved pc 0x1ab64
called by frame at 0xff3f0498, caller of frame at 0xff3f03b8
source language c.
Arglist at 0xff3f0428, args: thing=685396509, header=3, constant=0
Locals at 0xff3f0428,
(gdb) info args
thing = 685396509
header = 3
constant = 0
(gdb) info locals
nwords = 3
result = 685396509
new = (lispobj *) 0x28da5218
old = (lispobj *) 0x442f90f0
(gdb) up
#10 0x1ab64 in ptrans_instance (thing=1143967989, header=3, constant=0)
at ../../src/lisp/purify.c:587
587 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 10, frame at 0xff3f0498:
pc = 0x1ab64 in ptrans_instance (../../src/lisp/purify.c:587);
saved pc 0x1b5e0
called by frame at 0xff3f0508, caller of frame at 0xff3f0428
source language c.
Arglist at 0xff3f0498, args: thing=1143967989, header=3, constant=0
Locals at 0xff3f0498,
(gdb) info args
thing = 1143967989
header = 3
constant = 0
(gdb) info locals
layout = 1147915616
pure = 671088651
(gdb) up
#11 0x1b5e0 in pscav (addr=0x28da512c, nwords=22, constant=0)
at ../../src/lisp/purify.c:1196
1196 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 11, frame at 0xff3f0508:
pc = 0x1b5e0 in pscav (../../src/lisp/purify.c:1196); saved pc 0x1acf0
called by frame at 0xff3f0578, caller of frame at 0xff3f0498
source language c.
Arglist at 0xff3f0508, args: addr=0x28da512c, nwords=22, constant=0
Locals at 0xff3f0508,
(gdb) info args
addr = (lispobj *) 0x28da512c
nwords = 22
constant = 0
(gdb) info locals
thing = 1143967989
thingp = (lispobj *) 0x446bcd60
header = 694
count = 694
(gdb) up
#12 0x1acf0 in ptrans_vector (thing=685396175, bits=22, extra=685396168,
boxed=1, constant=0) at ../../src/lisp/purify.c:668
668 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 12, frame at 0xff3f0578:
pc = 0x1acf0 in ptrans_vector (../../src/lisp/purify.c:668); saved pc 0x1b174
called by frame at 0xff3f05e8, caller of frame at 0xff3f0508
source language c.
Arglist at 0xff3f0578, args: thing=685396175, bits=22, extra=685396168,
boxed=1, constant=0
Locals at 0xff3f0578,
(gdb) info args
thing = 685396175
bits = 22
extra = 685396168
boxed = 1
constant = 0
(gdb) info locals
vector = (struct vector *) 0x4450c418
nwords = 47
result = 685396175
new = (lispobj *) 0x28da50c8
(gdb) up
#13 0x1b174 in ptrans_otherptr (thing=685396175, header=47, constant=0)
at ../../src/lisp/purify.c:1072
1072 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 13, frame at 0xff3f05e8:
pc = 0x1b174 in ptrans_otherptr (../../src/lisp/purify.c:1072);
saved pc 0x1b5f8
called by frame at 0xff3f0658, caller of frame at 0xff3f0578
source language c.
Arglist at 0xff3f05e8, args: thing=685396175, header=47, constant=0
Locals at 0xff3f05e8,
(gdb) info args
thing = 685396175
header = 47
constant = 0
(gdb) info locals
No locals.
(gdb) up
#14 0x1b5f8 in pscav (addr=0x28da50c0, nwords=1, constant=0)
at ../../src/lisp/purify.c:1200
1200 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 14, frame at 0xff3f0658:
pc = 0x1b5f8 in pscav (../../src/lisp/purify.c:1200); saved pc 0x1aa78
called by frame at 0xff3f06c8, caller of frame at 0xff3f05e8
source language c.
Arglist at 0xff3f0658, args: addr=0x28da50c0, nwords=1, constant=0
Locals at 0xff3f0658,
(gdb) info args
addr = (lispobj *) 0x28da50c0
nwords = 1
constant = 0
(gdb) info locals
thing = 1146143775
thingp = (lispobj *) 0x446bcd60
header = 50
count = 50
(gdb) up
#15 0x1aa78 in ptrans_boxed (thing=685396157, header=3, constant=0)
at ../../src/lisp/purify.c:540
540 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 15, frame at 0xff3f06c8:
pc = 0x1aa78 in ptrans_boxed (../../src/lisp/purify.c:540); saved pc 0x1ab64
called by frame at 0xff3f0738, caller of frame at 0xff3f0658
source language c.
Arglist at 0xff3f06c8, args: thing=685396157, header=3, constant=0
Locals at 0xff3f06c8,
(gdb) info args
thing = 685396157
header = 3
constant = 0
(gdb) info locals
nwords = 3
result = 685396157
new = (lispobj *) 0x28da50b8
old = (lispobj *) 0x43ecb7d0
(gdb) up
#16 0x1ab64 in ptrans_instance (thing=1139587029, header=3, constant=0)
at ../../src/lisp/purify.c:587
587 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 16, frame at 0xff3f0738:
pc = 0x1ab64 in ptrans_instance (../../src/lisp/purify.c:587);
saved pc 0x1b5e0
called by frame at 0xff3f07a8, caller of frame at 0xff3f06c8
source language c.
Arglist at 0xff3f0738, args: thing=1139587029, header=3, constant=0
Locals at 0xff3f0738,
(gdb) info args
thing = 1139587029
header = 3
constant = 0
(gdb) info locals
layout = 1147915616
pure = 671088651
(gdb) up
#17 0x1b5e0 in pscav (addr=0x28da50a0, nwords=6, constant=0)
at ../../src/lisp/purify.c:1196
1196 in ../../src/lisp/purify.c
(gdb) info frame
Stack level 17, frame at 0xff3f07a8:
pc = 0x1b5e0 in pscav (../../src/lisp/purify.c:1196); saved pc 0x1b070
called by frame at 0xff3f0818, caller of frame at 0xff3f0738
source language c.
Arglist at 0xff3f07a8, args: addr=0x28da50a0, nwords=6, constant=0
Locals at 0xff3f07a8,
(gdb) info args
addr = (lispobj *) 0x28da50a0
nwords = 6
constant = 0
(gdb) info locals
thing = 1139587029
thingp = (lispobj *) 0x446bcd60
header = 694
count = 694
(gdb)