[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Debugging hints wanted

From: Roland Orre
Subject: Debugging hints wanted
Date: Mon, 30 Jun 2008 18:56:22 +0200

I need hints on how to find occasional segmentation faults
and missed GC references. This relates to 64 bit machines.

When I started using 64 bit machines a few years ago most of
guile fine after I converted my modules to 64 bit code.
Apart from changes in my own C-code the only thing I changed
in guile was size of uvect,ivect in unif.c cells as they
by default become 64 bit long instead of 32 bit. My 64 bits
are dual-CPU/core though so it may be related to that
(still using guile 1.7) but I don't have any problem on
dual CPU 32 bits systems.

My modules have worked perfectly fine on 32 bit machines but
on 64 bits I occasionally get something like
#<freed cell 0x2...; GC missed a reference> if I run that
code fast, which indicates a threading problem (I do not use
threads in this case, but seems like guile does). This does
not occur if I run guile through gdb. This happens not too often
but it seems to be related to string->symbol symbol->string.

My bigger problem though is frequently occurring 
segmentation faults or otherwise corrupt pointers.

 If I then run the code in gdb I can get
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x2ae316e4f070 (LWP 6699)]
0x00002ae314b9d091 in scm_gc_mark_dependencies (p=0x97c) at
441      if (SCM_GC_MARK_P (ptr))
Current language:  auto; currently c

Grateful for any hints to trace these kinds of problems.

Roland Orre

reply via email to

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