discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Segmentation fault on OSX for intel


From: David Ayers
Subject: Re: Segmentation fault on OSX for intel
Date: Wed, 04 Jan 2006 21:25:08 +0100
User-agent: Mozilla Thunderbird 1.0.2 (X11/20051002)

joekewoud_@joekewoud.nl schrieb:

> When I start *any* gnustep program. Including most from the Tools directory
> I get a segmentation fault
> 
[snip]
> 
> I use GCC4.02 FSF
> 
[snip]
> 
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x746f7270
> 0x90a418b0 in objc_msgSend ()
> (gdb) bt
> #0  0x90a418b0 in objc_msgSend ()
> (gdb) 

Hello Ewoud,

This is an indication that your binary is being linked against Apple's
libobjc as this function is called objc_msg_send on FSF libobjc.

> This is the crashlog:
> 
> 
[snip]
> 
> Thread 0 Crashed:
> 0   libobjc.A.dylib     0x90a418b0 objc_msgSend + 16

Note the name.

> 1   dyld                0x8fe0e2d6
> ImageLoaderMachO::doNotification(dyld_image_mode, unsigned, dyld_image_info
> const*) + 70
> 2   dyld                0x8fe03409
> dyld::notifyAdding(std::vector<ImageLoader*, std::allocator<ImageLoader*>
> 
>>&) + 201
> 
> 3   dyld                0x8fe0c4bd
> ImageLoader::runInitializers(ImageLoader::LinkContext const&) + 75
> 4   dyld                0x8fe02cfa dyld::initializeMainExecutable() + 112
> 5   Affiche             0x0000214d _call_mod_init_funcs + 36 (crt.c:305)
> 6   Affiche             0x00002079 _start + 79 (crt.c:240)
> 7   Affiche             0x00002029 start + 41
> 
> Thread 0 crashed with i386 Thread State:
> eax: 0x746f7250    ebx: 0x90a404e8 ecx:0x90a4f33c edx: 0x00095470
> edi: 0x00000000    esi: 0x00095470 ebp:0xbfffee58 esp: 0xbfffec98
>  ss: 0x0000002f    efl: 0x00010282 eip:0x90a418b0  cs: 0x00000027
>  ds: 0x0000002f     es: 0x0000002f  fs:0x00000000  gs: 0x00000037
> 
> Binary Images Description:
>     0x1000 -    0x17fff Affiche
> /usr/GNUstep/Local/Applications/Affiche.app/Affiche
>    0x81000 -    0x92fff libobjc-gnu.1.dylib
> /opt/local/lib/gcc40/libobjc-gnu.1.dylib

This is the libobjc you actually want.


> 0x907f0000 - 0x908b9fff com.apple.CoreFoundation 6.4.4 (368.22)
> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundatio

Not sure where CoreFoundation comes from...

> 0x908fa000 - 0x909eefff libicucore.A.dylib      /usr/lib/libicucore.A.dylib
> 0x90a3f000 - 0x90abffff libobjc.A.dylib         /usr/lib/libobjc.A.dylib

And here is Apples libobjc

> 0x90ae8000 - 0x90b4cfff libstdc++.6.dylib       /usr/lib/libstdc++.6.dylib
> 0x90bbb000 - 0x90bc2fff libgcc_s.1.dylib        /usr/lib/libgcc_s.1.dylib

and Apples gcc.

So it seems you have linked code previously linked with something that
pulls in CoreFoundation which is possibly responsible for also linking
the NeXT runtime, so your code is currently linked with both runtimes
which is causing the confusion.

I'm no expert on Darwin but I think with otool you can figure out the
dependencies of dylibs to determine what is pulling in the Apple code.

Good luck!
David




reply via email to

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