[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
nice GC crashes
From: |
Werner LEMBERG |
Subject: |
nice GC crashes |
Date: |
Wed, 26 Nov 2003 00:26:00 +0100 (CET) |
This time I have two nice crashes. The first one shows arg=-1 which
I've never seen before:
417 kill (getpid (), SIGABRT);
(gdb)
(gdb) bt full
#0 abort () at emacs.c:417
No locals.
#1 0x08179677 in mark_object (arg=-1) at alloc.c:5046
obj = -1
cdr_count = 0
#2 0x0817921c in mark_object (arg=-1463645112) at alloc.c:4923
ptr = (struct Lisp_Vector *) 0x9088050
size = 151719864
i = 0
obj = -1995931568
cdr_count = 0
#3 0x081750ea in mark_interval (i=0x8c60a84, dummy=675561548) at alloc.c:1191
i = 0x8c60a84
#4 0x081e6760 in traverse_intervals_noorder (tree=0x8c60a84,
function=0x81750d0 <mark_interval>, arg=675561548) at intervals.c:207
No locals.
#5 0x081e678e in traverse_intervals_noorder (tree=0x8c60abc,
function=0x81750d0 <mark_interval>, arg=675561548) at intervals.c:212
No locals.
#6 0x081e678e in traverse_intervals_noorder (tree=0x8c60b10,
function=0x81750d0 <mark_interval>, arg=675561548) at intervals.c:212
No locals.
...
Any advice how to proceed?
The second one doesn't have the zillion nesting levels but just three
within garbage_collect:
Program received signal SIGSEGV, Segmentation fault.
0x0817573d in compact_small_strings () at alloc.c:1840
1840 nbytes = GC_STRING_BYTES (from->string);
(gdb) bt full
#0 0x0817573d in compact_small_strings () at alloc.c:1840
nbytes = 208
b = (struct sblock *) 0x8c482d0
tb = (struct sblock *) 0x8eb4938
next = (struct sblock *) 0x8e54958
from = (struct sdata *) 0x8c490c0
to = (struct sdata *) 0x8eb5a44
end = (struct sdata *) 0x8c4a2c0
tb_end = (struct sdata *) 0x8eb6934
to_end = (struct sdata *) 0x8eb5a44
from_end = (struct sdata *) 0x8c490c0
#1 0x08175654 in sweep_strings () at alloc.c:1772
b = (struct string_block *) 0x0
next = (struct string_block *) 0x0
live_blocks = (struct string_block *) 0x86c2bc8
#2 0x08179c86 in gc_sweep () at alloc.c:5186
No locals.
#3 0x0817863d in Fgarbage_collect () at alloc.c:4493
bind = (struct specbinding *) 0x86cb630
catch = (struct catchtag *) 0x0
handler = (struct handler *) 0x0
backlist = (struct backtrace *) 0x0
stack_top_variable = 8 '\b'
i = -1
message_p = 1
total = {-1073750996, 135626964, 3, 3, 136117264, 1077288623, 512,
135742825}
count = 45
t1 = {
tv_sec = 1069784113,
tv_usec = 979733
}
t2 = {
tv_sec = 0,
tv_usec = 1760278308
}
t3 = {
tv_sec = 135744754,
tv_usec = 149699272
}
#4 0x081cfedd in Fbyte_code (bytestr=1751327012, vector=-2006793736,
maxdepth=3) at bytecode.c:522
count = 45
op = 131
vectorp = (int *) 0x862c200
bytestr_length = 28
stack = {
pc = 0x86cc557 "\022",
top = 0xbfffdc44,
bottom = 0xbfffdc44,
byte_string = 1751327012,
byte_string_start = 0x86cc54c "\b\205\e",
constants = -2006793736,
next = 0xbfffdee0
}
top = (int *) 0xbfffdc44
result = 675703052
...
Due to my bad experiences with GC debugging I haven't done anything
further. Both processes are still in gdb, awaiting your commands.
Werner
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- nice GC crashes,
Werner LEMBERG <=