On 24 Jan 2013, at 10:12, Marcus Müller wrote: > Hi David, > >> A crash in objc_msgSend() usually means that the object that is being sent a >> message is an invalid pointer. Try enabling zombies and see if it reports >> an object being deallocated. > > that's clear - but why can't I print it in gdb? I just want to inspect the > pointer, but even that fails. > >>> (gdb) frame 1 >>> #1 0x0000000800d6ade9 in -[GSRunLoopCtxt pollUntil:within:] ( >>> self=0x806d5e248, _cmd=0x80113b990 <.objc_selector_list+544>, >>> milliseconds=0, contexts=0x806c3bfa8) at GSRunLoopCtxt.m:639 >>> 639 [watcher->receiver receivedEvent: watcher->data >>> (gdb) p watcher >>> $1 = (struct GSRunLoopWatcher *) 0x8071b8d68 >>> (gdb) p watcher->receiver >>> Cannot set lwp 100877 registers: Invalid argument >>> An error occurred while in a function called from GDB. >>> Evaluation of the expression containing the function >>> (malloc) will be abandoned. >>> When the function is done executing, GDB will silently stop.
Hmmm, maybe watcher is an invalid pointer. Did you try valgrind? >> P.S. On FreeBSD, it's usually best to use gdb from ports, as the one in base >> doesn't understand DWARF4, which modern clang and gcc both generate. > > I'm using [GDB v7.5.1 for FreeBSD], should be good? Yup, should be fine. David _______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
