[Openmcl-devel] debugging a segfault

Jared C. Davis jared at cs.utexas.edu
Mon Nov 2 08:41:32 PST 2009


I'm running into a reproducible segfault during save-application on
CCL 1.4-r13157M  (and at least some previous versions) on linux

I believe I have successfully followed the instructions for getting a
backtrace in GDB, but I could be wrong. :)

Here is what I get:

CCL terminal:

> Error: Fault during read of memory address #x7F60E68B78B8
> While executing: CCL::LISP-THREAD-SUSPEND-COUNT, in process Initial(0).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.

1 > :b
liexception in foreign context
Exception occurred while executing foreign code
 at atomic_incf_by + 16
? for help
[15979] Clozure CL kernel debugger: r
%rax = 0x0000000000000000      %r8  = 0x0000000000000000
%rcx = 0x0000000000000000      %r9  = 0x00007fff56261180
%rdx = 0x000030004001518b      %r10 = 0x00007f56a31ee6f0
%rbx = 0x00007f60e68b77c0      %r11 = 0x0000000000000246
%rsp = 0x00007fff56260c80      %r12 = 0x00007f60e68b78b8
%rbp = 0x00007fff56261228      %r13 = 0x0000000000000001
%rsi = 0x0000000000000001      %r14 = 0x0000000000000004
%rdi = 0x00007f60e68b78b8      %r15 = 0x00007fff56261530
%rip = 0x000000000041e230   %rflags = 0x00010202

GDB terminal:

$ gdb /home/jared/ccl/lx86cl64
(gdb) source /home/jared/ccl/lisp-kernel/linuxx8664/.gdbinit
(gdb) attach 15979
Attaching to program: /home/jared/ccl/lx86cl64, process 15979
(gdb) br *0x000000000041e230
Breakpoint 2 at 0x41e230: file ../thread_manager.c, line 191.
(gdb) continue

Breakpoint 2, atomic_incf_by (ptr=0x7f60e68b78b8, by=1)
    at ../thread_manager.c:191
191	    old = *ptr;
1: x/i $pc
0x41e230 <atomic_incf_by+16>:	mov    (%r12),%rbx
(gdb) bt
#0  atomic_incf_by (ptr=0x7f60e68b78b8, by=1) at ../thread_manager.c:191
#1  0x000000000041e3b0 in suspend_tcr (tcr=0x7f60e68b77c0)
    at ../thread_manager.c:2074
#2  0x000000000041f49b in lisp_suspend_tcr (tcr=0x7f60e68b77c0)
    at ../thread_manager.c:2156
#3  0x000000000041cdf6 in handle_exception (signum=<value optimized out>,
    info=0x1, context=0x7fff56261180, tcr=0x7f56a31ee6f0, old_valence=0)
    at ../x86-exceptions.c:1105
#4  0x000000000041d229 in signal_handler (signum=4, info=0x7fff56261530,
    context=0x7fff56261180) at ../x86-exceptions.c:1301
#5  <signal handler called>

At this point I seem in over my head.


Jared C. Davis <jared at cs.utexas.edu>
11410 Windermere Meadows
Austin, TX 78759

More information about the Openmcl-devel mailing list