emacs-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]