This is the mail archive of the guile@sourceware.cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

How to solve a garbage collection problem ?


One of my programs produces the following error:

ERROR: In procedure apply in expression (expat:parse parser13 line ...):
ERROR: Wrong type argument in position 1: #<freed cell 0x402147b8; GC
missed a reference>

I cannot give the code which produce this problem, because it's large,
and it uses a C extension library I wrote.  I couldn't reproduce it in
a small program, because removing random lines also removes the error.
So I am wondering into which direction I should go to solve this kind
of problem :

- Should I look into my Scheme code ? In other words, can Scheme code
  produce GC errors (assuming there is no bug in the garbage
  collector) ?

- Should I look into the C extension this code is using ? In other
  words, can C extensions produce GC errors ?

I suppose the answers are "no" for the first question and "yes" to the
second, so I'll have to look into my C code.  In that case, what are
the available techniques, if any, to track GC problems ?  Or do I have
to read my source code again, line by line, and check that I always
mark and free cells as indicated in data-rep.info ?

Thanks.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]