objc: SIGSEGV (in gdb only) during module loading

Michael Scheibler michael.scheibler@onevision.de
Fri May 4 01:02:00 GMT 2001


I am currently working with cygwin (on Win2K), my sources are compiled
with gcc -mno-cygwin (thats mingw). I wanted to test our huge project with
objc and gnustep-base linked as a shared DLL. When I run it from my
console everything seems to be okay, but when I try to debug it using
cygwin's gdb 5.0, I get a SIGSEGV fault even before main() is invoked.

Program received signal SIGSEGV, Segmentation fault.
0x67bc867d in sarray_free ()

When I use objc_d, I can see, that the error occurs when the Objective-C
runtime loads and registers all the classes and their methods of our project
(loading of gnustep-base classes has been successful). By changing the
compilation order of my source files it happens while loading a different
module.

The error always occurs in sarray_free()

  429 #else /* OBJC_SPARSE2 */
- 430     struct sbucket* bkt = array->buckets[counter];
- 431     if ((bkt != array->empty_bucket) &&
  432  (bkt->version.version == array->version.version))

       // btk->version.version => Access violation

  433       {
- 434  sarray_free_garbage(bkt);
- 435  nbuckets -= 1;
- 436       }
  437 #endif


Is there a bug in libobjc?

Michael




More information about the Gcc-bugs mailing list