Le 15 avr. 2011 à 09:49, Slex Sangiuliano a écrit :

> > From: qma...@gmail.com
> > Date: Thu, 14 Apr 2011 18:13:17 +0200
> > To: etoile-dev@gna.org
> > Subject: Re: [Etoile-dev] backtrace.log
> > 
> > Le 14 avr. 2011 à 16:39, Slex Sangiuliano a écrit :
> > 
> > > i done the backtrace.log as normal user on the etoile_system's 
> > > segmentation fault.
> > 
> > Looks the same than a bug that existed one month ago in Clang trunk (now 
> > fixed). Which LLVM+Clang revision are you using? Which libobjc2 revision 
> > too?
> > 
> > Cheers,
> > Quentin.
> 
> I use clang + llvm 2.9 (trunk), libobjc2 updated  yesterday  from trunk, 
> recompiled with gcc (i tried also with clang) (get ever segfault)

This should be ok. So it looks like the bug we had previously can still arise.
According to the backtrace… For some reason, -[NSNotificationCenter init] goes 
wrong and doesn't create the object for the _table ivar. _table ivar 
corresponds to the 't' argument in the frame 0 of the backtrace. 
You can try to debug what's going on in -[NSNotificationCenter init].

It could be a remaining issue in objc_send_initialize() or some other issue 
such as the Clang bug I was referring too previously.

David, any other idea?

> I run testsuite in EtoileFoundation and get:
> 
> ukrun version 1.3 (GNUstep)
> looking for bundle at path: 
> /usr/home/alex/Etoile/Frameworks/EtoileFoundation/EtoileFoundation.bundle
> 2011-04-15 09:47:26.205 ukrun[2461] Check constraint warnings: ()
> TestStackTraceRecorder.m:28: warning: Failed, expected true, got false
> TestStackTraceRecorder.m:35: warning: Failed, expected true, got false
> Result: 13 classes, 98 methods, 442 tests, 2 failed

Looks like GSStackTrace doesn't work on some platforms, you are getting traces 
with less than one frame according to the test failures.
David told me about the same issue on FreeBSD. iirc you are using FreeBSD too, 
right?

You can try to install libbfd as explained in ETStackTraceRecorder.h, then 
GSStackTrace should use it to generate the trace rather than its default 
mechanism. I'd be curious to know whether that makes the tests pass or not.

Additionally I suggest to test GSStackTrace with a test program that creates an 
object from a DummyClass, then calls a method on this object… the method would 
contain the code:

id stackTraceObj = [[NSClassFromString(@"GSStackTrace") alloc] init];
NSLog(@"%@", [stackTraceObj performSelector: @selector(symbols)]);

If you can paste the result in a mail, that would be great. If the result makes 
no sense, it would be a good idea to submit a bug report to GNUstep.

Cheers,
Quentin.


_______________________________________________
Etoile-dev mailing list
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to