bug-gnustep
[Top][All Lists]
Advanced

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

Re: [bug #4189] broken bycopy in DO


From: Alexander Malmberg
Subject: Re: [bug #4189] broken bycopy in DO
Date: Fri, 04 Jul 2003 15:25:25 +0200

Richard Frith-Macdonald wrote:
[snip]
> I haven't been able to get any crashes with my DO applications built
> with gcc-3.0
> Perhaps I'm not trying the correct apps.

Any application (note application, ie. using AppKit). Eg. GNUMail:

#0  0x4056e46e in objc_msg_lookup () at /tmp/ccu4zdAF.s:32
32      /tmp/ccu4zdAF.s: No such file or directory.
        in /tmp/ccu4zdAF.s
(gdb) bt
#0  0x4056e46e in objc_msg_lookup () at /tmp/ccu4zdAF.s:32
#1  0x4041c7af in -[NSDistantObject methodSignatureForSelector:] (
    self=0x40555880, _cmd=0xbfffe754, aSelector=0x4) at
NSDistantObject.m:817
#2  0x404a7ff0 in GSInvocationCallback (callback_data=0x2,
args=0xbfffe754)
    at GSFFCallInvocation.m:772
#3  0x404d8829 in __vacall_r ()
   from
/opt/GNUstep/System/Library/Libraries/ix86/linux-gnu/gnu-gnu-gnu/libgnustep-base.so.1
#4  0x4041e5b4 in -[NSDistributedNotificationCenter
addObserver:selector:name:object:suspensionBehavior:] (self=0x8287a68,
_cmd=0x40535068,
    anObserver=0x82373f0, aSelector=0x4033b170, notificationName=0x0,
    anObject=0x4033a4d8,
    suspensionBehavior=NSNotificationSuspensionBehaviorCoalesce)
    at NSDistributedNotificationCenter.m:310
#5  0x4041e42c in -[NSDistributedNotificationCenter
addObserver:selector:name:object:] (self=0x8287a68, _cmd=0x4033b178,
anObserver=0x40534628,
    aSelector=0x40534628, notificationName=0x40534628,
anObject=0x40534628)
    at NSDistributedNotificationCenter.m:235
#6  0x4024dbb9 in -[_GSWorkspaceCenter init] (self=0x82373f0,
_cmd=0x4053be80)
    at NSWorkspace.m:94
#7  0x40444e12 in +[NSObject new] (self=0x82373f0, _cmd=0x4033b240)
    at NSObject.m:1016
#8  0x4024e93c in -[NSWorkspace init] (self=0x82373f0, _cmd=0x4033b158)
    at NSWorkspace.m:432
#9  0x4024e7b6 in +[NSWorkspace sharedWorkspace] (self=0x2,
_cmd=0x40304078)
    at NSWorkspace.m:402
#10 0x4010f429 in -[NSApplication finishLaunching] (self=0x82b56f0,
    _cmd=0x40304208) at NSApplication.m:719
#11 0x4011099a in -[NSApplication run] (self=0x82b56f0, _cmd=0x40302830)
    at NSApplication.m:1050
#12 0x401078b3 in NSApplicationMain (argc=1, argv=0xbfffede0) at
Functions.m:72
#13 0x080eb57c in main (argc=2, argv=0x2, env=0xbfffede8) at
GNUMail_main.m:42
#14 0x405cb9b3 in __libc_start_main (main=0x80eb440 <main>, argc=1,
    ubp_av=0xbfffede0, init=0x804c41c <_init>, fini=0x80efa70 <_fini>,
    rtld_fini=0x4000bf20 <_dl_fini>, stack_end=0xbfffeddc)
    at ../sysdeps/generic/libc-start.c:129
Current language:  auto; currently asm
(gdb) up
#1  0x4041c7af in -[NSDistantObject methodSignatureForSelector:] (
    self=0x40555880, _cmd=0xbfffe754, aSelector=0x4) at
NSDistantObject.m:817
p817              mth = [_protocol descriptionForInstanceMethod:
aSelector];
(gdb) print *self
$1 = {isa = 0x0, _retain_count = 0, _connection = 0x0, _object = 0x0,
  _handle = 1, _protocol = 0x0}
/** gdb is confused, despite -O0. Work around it... **/
(gdb) up
#2  0x404a7ff0 in GSInvocationCallback (callback_data=0x2,
args=0xbfffe754)
    at GSFFCallInvocation.m:772
772       sig = [obj methodSignatureForSelector: selector];
(gdb) print obj
$2 = (struct objc_object *) 0x826cc48
(gdb) print *(Protocol *)(((unsigned int *)obj)[5])
$7 = {class_pointer = 0x2, protocol_name = 0x404ef6de "GDNCProtocol",
  protocol_list = 0x0, instance_methods = 0x40535200, class_methods =
0x0}

Same thing with Terminal.

> The other possibility that occurs to me is that you were too quick off
> the mark
> checking out the fixes ... I did that the changes sometimes triggered a
> bug
> in the implementation of Protocol in the runtime, and added (as a
> temporary
> hack) a category in NSObject.m to work around the bug.  Perhaps you
> don't
> have that from cvs yet?

I do, and I had a hack of my own there before, but that only fixes the
first crash, which looked like:

#0  0x402f4d61 in -[Protocol descriptionForClassMethod:]
(self=0x402d4748,
    _cmd=0x402ccbf0, aSel=0x804ef00)
    at /usr/local/src/gcc.3.2/libobjc/Protocol.m:109
#1  0x401d63f9 in -[NSObject methodSignatureForSelector:]
(self=0x402d4220,
    _cmd=0x0, aSelector=0x804ef00) at NSObject.m:1365
#2  0x4001efd6 in gstep_send_fn (receiver=1079486128, method=1079464088,
    args_list=1079439080, toSuper=0 '\0') at gg_id.m:791
#3  0x4001f427 in gstep_msg_send_fn (receiver=0, method=0, args_list=0)
    at gg_id.m:898
#4  0x4005e98b in scm_ceval (x=1079455808, env=1079440624) at
eval.c:3109
#5  0x4005bc64 in scm_eval_args (l=1079442728, env=1079403120,
proc=1079561280)
.....

- Alexander Malmberg




reply via email to

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