* bug#1079: GNUstep port segfaults making autoloads on x86_64 @ 2008-10-03 21:18 Glenn Morris 2008-10-04 1:04 ` Adrian Robert ` (2 more replies) 0 siblings, 3 replies; 14+ messages in thread From: Glenn Morris @ 2008-10-03 21:18 UTC (permalink / raw) To: bug-gnu-emacs Trying to bootstrap the GNUStep port on x86_64 GNU/Linux, it segfaults making autoloads. The problem can be reduced to anything that tries to set a variable, eg: ../src/bootstrap-emacs -batch --no-site-file \ --eval '(setq make-backup-files nil)' Disclaimer: I know nothing about GNUStep, I just grabbed a tarball and made a local installation of it. Backtrace: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47021579284768 (LWP 22766)] 0x00002ac40faccaf6 in NSCountFrames () at NSDebug.m:994 994 NSDebug.m: No such file or directory. in NSDebug.m Current language: auto; currently objective-c (gdb) bt #0 0x00002ac40faccaf6 in NSCountFrames () at NSDebug.m:994 #1 0x00002ac40fad4ff3 in GSPrivateStackAddresses () at NSDebug.m:1100 #2 0x00002ac40faeb920 in -[NSException raise] (self=0x1e08b5f0, _cmd=0x2ac40ff96440) at NSException.m:822 #3 0x00002ac40faeb3f4 in +[NSException raise:format:arguments:] ( self=0x2ac40ff95fe0, _cmd=0x2ac40ff96410, name=0x2ac40ff95aa0, format=0x2ac40ffc5020, argList=0x7fff9b952ba0) at NSException.m:765 #4 0x00002ac40faeb32a in +[NSException raise:format:] (self=0x2ac40ff95fe0, _cmd=0x2ac40ffc66b0, name=0x2ac40ff95aa0, format=0x2ac40ffc5020) at NSException.m:751 #5 0x00002ac40fb5ffbb in GSPropertyListFromStringsFormat (string=0x1e02e600) at NSPropertyList.m:1505 #6 0x00002ac40fb9a474 in -[NSString propertyList] (self=0x1e02e600, _cmd=0x2ac40fff4f80) at NSString.m:4701 #7 0x00002ac40fbcd5f3 in -[NSUserDefaults __createArgumentDictionary] ( self=0x1e0843f0, _cmd=0x2ac40fff4bf0) at NSUserDefaults.m:1816 #8 0x00002ac40fbc8e0e in -[NSUserDefaults initWithContentsOfFile:] ( self=0x1e0843f0, _cmd=0x2ac40fff4ae0, path=0x1e085620) at NSUserDefaults.m:872 #9 0x00002ac40fbc8349 in -[NSUserDefaults initWithUser:] (self=0x1e0843f0, _cmd=0x2ac40fff4ad0, userName=0x1df2b330) at NSUserDefaults.m:774 #10 0x00002ac40fbc82c4 in -[NSUserDefaults init] (self=0x1e0843f0, _cmd=0x2ac40fff4910) at NSUserDefaults.m:765 #11 0x00002ac40fbc7383 in +[NSUserDefaults standardUserDefaults] ( self=0x2ac40fff46c0, _cmd=0x2ac40fff4870) at NSUserDefaults.m:474 #12 0x00002ac40fbc7c78 in +[NSUserDefaults userLanguages] ( self=0x2ac40fff46c0, _cmd=0x2ac40ff769f0) at NSUserDefaults.m:682 #13 0x00002ac40fa86b99 in +[NSBundle _bundleResourcePathsWithRootPath:subPath:] (self=0x2ac40ff76360, _cmd=0x2ac40ff76a00, rootPath=0x1e070fa0, subPath=0x0) at NSBundle.m:1603 #14 0x00002ac40fa86e05 in +[NSBundle pathForResource:ofType:inRootPath:inDirectory:withVersion:] (self=0x2ac40ff76360, _cmd=0x2ac40ff76a10, name=0x2ac40ff75760, ext=0x2ac40ff75780, rootPath=0x1e070fa0, subPath=0x0, version=0) at NSBundle.m:1637 #15 0x00002ac40fa8731f in -[NSBundle pathForResource:ofType:inDirectory:] ( self=0x1e079450, _cmd=0x2ac40ff76770, name=0x2ac40ff75760, ext=0x2ac40ff75780, subPath=0x0) at NSBundle.m:1732 #16 0x00002ac40fa871e4 in -[NSBundle pathForResource:ofType:] ( self=0x1e079450, _cmd=0x2ac40ff76b10, name=0x2ac40ff75760, ext=0x2ac40ff75780) at NSBundle.m:1713 #17 0x00002ac40fa890f5 in -[NSBundle infoDictionary] (self=0x1e079450, _cmd=0x2ac40ff76990) at NSBundle.m:2192 #18 0x00002ac40fa893d5 in -[NSBundle bundleIdentifier] (self=0x1e079450, _cmd=0x2ac40ff768f0) at NSBundle.m:2237 #19 0x00002ac40fa858b3 in -[NSBundle initWithPath:] (self=0x1e079450, _cmd=0x2ac40ff76750, path=0x1e070fa0) at NSBundle.m:1315 #20 0x00002ac40fa852a0 in +[NSBundle bundleWithPath:] (self=0x2ac40ff76360, _cmd=0x2ac40ff76bc0, path=0x1e079270) at NSBundle.m:1192 #21 0x00002ac40fa89980 in +[NSBundle(GNUstep) bundleForLibrary:version:] ( self=0x2ac40ff76360, _cmd=0x2ac40ff76820, libraryName=0x1e033250, interfaceVersion=0x2ac40ff75080) at NSBundle.m:2352 #22 0x00002ac40fa8406a in +[NSBundle initialize] (self=0x2ac40ff76360, _cmd=0x2ac40fffaef0) at NSBundle.m:819 #23 0x00002ac41005c04d in objc_msg_lookup () from /usr/lib64/libobjc.so.1 #24 0x00000000006b8b44 in ns_init_paths () at nsterm.m:329 #25 0x0000000000579fe2 in main (argc=5, argv=0x7fff9b953ca8) at emacs.c:1467 ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-03 21:18 bug#1079: GNUstep port segfaults making autoloads on x86_64 Glenn Morris @ 2008-10-04 1:04 ` Adrian Robert 2008-10-05 1:40 ` Glenn Morris 2008-10-06 9:39 ` Yavor Doganov 2008-10-06 11:32 ` Yavor Doganov 2 siblings, 1 reply; 14+ messages in thread From: Adrian Robert @ 2008-10-04 1:04 UTC (permalink / raw) To: Glenn Morris, 1079 On Oct 3, 2008, at 5:18 PM, Glenn Morris wrote: > > Trying to bootstrap the GNUStep port on x86_64 GNU/Linux, it segfaults > making autoloads. The problem can be reduced to anything that tries to > set a variable, eg: > > ../src/bootstrap-emacs -batch --no-site-file \ > --eval '(setq make-backup-files nil)' ... > #25 0x0000000000579fe2 in main (argc=5, argv=0x7fff9b953ca8) at > emacs.c:1467 #ifdef HAVE_NS #ifndef CANNOT_DUMP if (initialized) #endif ns_init_paths (); #endif Hmm, not sure if this ns_init_paths() is needed during the bootstrap -- i.e., should the conditional be different, or should it be moved after the init_...() calls? Unf I cannot test this stuff myself. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-04 1:04 ` Adrian Robert @ 2008-10-05 1:40 ` Glenn Morris 2008-10-05 2:06 ` Adrian Robert 0 siblings, 1 reply; 14+ messages in thread From: Glenn Morris @ 2008-10-05 1:40 UTC (permalink / raw) To: Adrian Robert; +Cc: 1079 Adrian Robert wrote: > #ifndef CANNOT_DUMP > if (initialized) > #endif > ns_init_paths (); > #endif > > Hmm, not sure if this ns_init_paths() is needed during the bootstrap I tried commenting it out; then I get a segfault loading term/ns-win.el from the ns-list-colors call. > -- i.e., should the conditional be different, or should it be moved > after the init_...() calls? Unf I cannot test this stuff myself. I tried (randomly) moving it after init_cmdargs; didn't make a difference. Since it works (for this stage at least) on 32-bit, but not 64, I don't think something like that can be the answer. It's the very first line of ns_init_paths that is the problem, does this suggest anything? NSBundle *bundle = [NSBundle mainBundle]; ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-05 1:40 ` Glenn Morris @ 2008-10-05 2:06 ` Adrian Robert 0 siblings, 0 replies; 14+ messages in thread From: Adrian Robert @ 2008-10-05 2:06 UTC (permalink / raw) To: Glenn Morris; +Cc: 1079 On Oct 4, 2008, at 9:40 PM, Glenn Morris wrote: > Adrian Robert wrote: > >> #ifndef CANNOT_DUMP >> if (initialized) >> #endif >> ns_init_paths (); >> #endif >> >> Hmm, not sure if this ns_init_paths() is needed during the bootstrap > > I tried commenting it out; then I get a segfault loading > term/ns-win.el from the ns-list-colors call. > >> -- i.e., should the conditional be different, or should it be moved >> after the init_...() calls? Unf I cannot test this stuff myself. > > I tried (randomly) moving it after init_cmdargs; didn't make a > difference. > > Since it works (for this stage at least) on 32-bit, but not 64, I > don't think something like that can be the answer. > > It's the very first line of ns_init_paths that is the problem, does > this suggest anything? > > NSBundle *bundle = [NSBundle mainBundle]; It's just an ordinary API call, but it's not meant to be run from an app that is not inside a "bundle". That is, once packaged into Emacs.app directory structure, it's OK to run this call, but the behavior would be undefined if just being run as src/[t]emacs. From your stack trace it looked like GNUstep tried to initialize some of its internals and ran into an unexpected condition causing the crash. So, if there were some way to run ns_init_paths() only in either dumped emacs, or CANNOT_DUMP emacs but NOT during bootstrapping, I think that would be best. (I may not have fully thought this through when I first wrote that conditional, probably since the ns_init_paths impl originally didn't call -mainBundle.) As for the location before or after init_ calls, on second thought I'm not sure this matters a lot. I believe I put it the same place the Carbon port had its equivalent call. Regarding the later segfault after commenting out, ns_init_paths only sets environment variables affecting emacs lisp load paths, does not initialize anything else. So I'd say this is a separate bug. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-03 21:18 bug#1079: GNUstep port segfaults making autoloads on x86_64 Glenn Morris 2008-10-04 1:04 ` Adrian Robert @ 2008-10-06 9:39 ` Yavor Doganov 2008-10-06 17:20 ` Glenn Morris 2008-10-06 11:32 ` Yavor Doganov 2 siblings, 1 reply; 14+ messages in thread From: Yavor Doganov @ 2008-10-06 9:39 UTC (permalink / raw) To: Glenn Morris, 1079 At Fri, 03 Oct 2008 17:18:17 -0400, Glenn Morris wrote: > > Trying to bootstrap the GNUStep port on x86_64 GNU/Linux, it segfaults > making autoloads. Which version of GNUstep Base is this? Can you run the testsuite on that machine, e.g. svn co http://svn.gna.org/svn/gnustep/tests/testsuite/trunk gnustep-testsuite cd gnustep-testsuite make and post the output of the failed tests and the summary? If the -mainBundle method call fails because the app is not yet installed, it should fail on other architectures too. Perhaps there's something else here. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-06 9:39 ` Yavor Doganov @ 2008-10-06 17:20 ` Glenn Morris 2008-10-06 18:39 ` Glenn Morris 2008-10-07 19:02 ` Yavor Doganov 0 siblings, 2 replies; 14+ messages in thread From: Glenn Morris @ 2008-10-06 17:20 UTC (permalink / raw) To: 1079; +Cc: yavor Yavor Doganov wrote: > Which version of GNUstep Base is this? gnustep-startup-0.20.0.tar > Can you run the testsuite on that machine, e.g. > > svn co http://svn.gna.org/svn/gnustep/tests/testsuite/trunk gnustep-testsuite > cd gnustep-testsuite > make > > and post the output of the failed tests and the summary? I was going to ask if my GNUstep installation could be messed up somehow... Disclosure: my GNUstep.conf file is not in /etc, so I patched configure to accept a path to GNUstep.conf. I haven't submitted that yet since I don't know if am doing the right thing. But I don't see that it would make a difference to this. 64-bit output: --- Running tests in base --- base/GSMime/test01.m: FAIL: can parse HTTP 200 reponse in one go base/NSInvocation/general.m: FAIL: Can send/return large structs base/NSInvocation/test01.m: FAIL: base/NSInvocation/test01.m base/NSProxy/test01.m: FAIL: Proxy NSPoint FAIL: Proxy GSFinePoint FAIL: base/NSProxy/test01.m base/NSStream/socket.m: FAIL: read www.google.com https base/NSString/order.m: FAIL: base/NSString/order.m 237 COMPLETED 8 FAIL 4848 PASS 32-bit output: --- Running tests in base --- base/GSMime/test01.m: FAIL: can parse HTTP 200 reponse in one go base/NSProxy/test01.m: FAIL: Proxy GSFinePoint FAIL: base/NSProxy/test01.m base/NSStream/socket.m: FAIL: read www.google.com https base/NSString/order.m: FAIL: base/NSString/order.m 238 COMPLETED 5 FAIL 4848 PASS ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-06 17:20 ` Glenn Morris @ 2008-10-06 18:39 ` Glenn Morris 2008-10-07 19:02 ` Yavor Doganov 1 sibling, 0 replies; 14+ messages in thread From: Glenn Morris @ 2008-10-06 18:39 UTC (permalink / raw) To: 1079; +Cc: yavor Glenn Morris wrote: > Disclosure: my GNUstep.conf file is not in /etc, so I patched > configure to accept a path to GNUstep.conf. Emacs's configure, in case that was unclear, ie will not affect these tests. You also wanted the tests.log output. Here are the failed pieces from x86_64: Testing base/GSMime/test01.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. gmake[1]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/GSMime' Making all for test_tool test01... Compiling file test01.m ... test01.m: In function 'main': test01.m:16: warning: unused variable 'complete' Linking test_tool test01 ... gmake[1]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/GSMime' Running base/GSMime/test01.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. PASS: can parse one header PASS: First Header not complete until next starts PASS: Adding partial headers is ok PASS: Parsed first header as expected PASS: Completing partial header is ok PASS: Partial header not complete until next starts PASS: Folded header is ok PASS: Parsed partial header as expected <hello> PASS: Folded header not complete until next starts PASS: partial end-of-line is ok PASS: Parsed folded header as expected testing PASS: completing end-of-line is ok PASS: charset is inferred PASS: raw mime data for long header is OK FAIL: can parse HTTP 200 reponse in one go PASS: parse is complete COMPLETED: base/GSMime/test01.m Testing base/NSInvocation/general.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. gmake[1]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSInvocation' Making all in ../GenericTests... gmake[2]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/GenericTests' Making all for subproject generictests... gmake[3]: Nothing to be done for `internal-subproject-all'. gmake[2]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/GenericTests' Making all in Resources... gmake[2]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSInvocation/Resources' Making all for bundle InvokeProxy... gmake[3]: Nothing to be done for `internal-bundle-all'. gmake[2]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSInvocation/Resources' Making all for test_tool general... Compiling file general.m ... Linking test_tool general ... gmake[1]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSInvocation' Running base/NSInvocation/general.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. PASS: loading resources from bundle PASS: Invoke retChar PASS: Can return chars PASS: Invoke retShort PASS: Can return short PASS: Invoke retInt PASS: Can return int PASS: Invoke retLong PASS: Can return long PASS: Invoke retFloat PASS: Can return float PASS: Invoke retDouble PASS: Can return double PASS: Invoke retObject PASS: Can return object PASS: Invoke loopChar: PASS: Can send/return chars PASS: Invoke loopShort: PASS: Can send/return shorts PASS: Invoke loopInt: PASS: Can send/return ints PASS: Invoke loopLong: PASS: Can send/return longs PASS: Invoke loopFloat: PASS: Can send/return floats PASS: Invoke loopDouble: PASS: Can send/return double PASS: Invoke loopObject: PASS: Can send/return objects PASS: Invoke loopString: PASS: Can send/return char * PASS: Invoke loopSmall: PASS: Can send/return small structs PASS: Invoke loopLarge: FAIL: Can send/return large structs COMPLETED: base/NSInvocation/general.m Testing base/NSInvocation/test01.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. gmake[1]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSInvocation' Making all in ../GenericTests... gmake[2]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/GenericTests' Making all for subproject generictests... gmake[3]: Nothing to be done for `internal-subproject-all'. gmake[2]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/GenericTests' Making all in Resources... gmake[2]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSInvocation/Resources' Making all for bundle InvokeProxy... gmake[3]: Nothing to be done for `internal-bundle-all'. gmake[2]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSInvocation/Resources' Making all for test_tool test01... Compiling file test01.m ... Linking test_tool test01 ... gmake[1]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSInvocation' Running base/NSInvocation/test01.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. PASS: loading resources from bundle PASS: Retain return value PASS: Will Retain arguments after -retainArguments PASS: default will not retain arguments PASS: Check if nil target works PASS: Exception in invocation #1 PASS: Exception getting return value #1 gmake[1]: *** [test] Segmentation fault FAIL: base/NSInvocation/test01.m Testing base/NSProxy/test01.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. gmake[1]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSProxy' Making all for test_tool test01... Compiling file test01.m ... test01.m: In function '-[TypeTester idPid:]': test01.m:116: warning: pointer type mismatch in conditional expression Linking test_tool test01 ... gmake[1]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSProxy' Running base/NSProxy/test01.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. PASS: Proxy signed char PASS: Proxy unsigned char PASS: Proxy signed short PASS: Proxy unsigned short PASS: Proxy singed int PASS: Proxy unsigned int PASS: Proxy signed long PASS: Proxy unsigned long PASS: Proxy signed long long PASS: Proxy unsigned long long PASS: Proxy float PASS: Proxy float PASS: Proxy id PASS: Proxy enum PASS: Proxy NSRange FAIL: Proxy NSPoint PASS: Proxy NSDecimal FAIL: Proxy GSFinePoint gmake[1]: *** [test] Segmentation fault FAIL: base/NSProxy/test01.m Testing base/NSStream/socket.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. gmake[1]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSStream' Making all for test_tool socket... Compiling file socket.m ... socket.m:12: warning: pointer targets in initialization differ in signedness Linking test_tool socket ... gmake[1]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSStream' Running base/NSStream/socket.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. 2008-10-06 18:30:04.942 socket[6877] Unknown time zone name `PST'. 2008-10-06 18:30:04.942 socket[6877] Using time zone with absolute offset 0. 2008-10-06 18:30:04.938 socket[6877] Got 8 on 0x1d3dfdb0 2008-10-06 18:30:04.944 socket[6877] Got 8 on 0x1d3dbaa0 FAIL: read www.google.com https COMPLETED: base/NSStream/socket.m Testing base/NSString/order.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. gmake[1]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSString' Making all for test_tool order... Compiling file order.m ... Linking test_tool order ... gmake[1]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/gnustep-testsuite/base/NSString' Running base/NSString/order.m... This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help. 2008-10-06 18:30:38.608 order[7286] Unknown time zone name `PST'. 2008-10-06 18:30:38.608 order[7286] Using time zone with absolute offset 0. 2008-10-06 18:30:38.603 order[7286] No iconv for encoding x90000100 gmake[1]: *** [test] Segmentation fault FAIL: base/NSString/order.m ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-06 17:20 ` Glenn Morris 2008-10-06 18:39 ` Glenn Morris @ 2008-10-07 19:02 ` Yavor Doganov 2008-10-08 7:51 ` Glenn Morris 1 sibling, 1 reply; 14+ messages in thread From: Yavor Doganov @ 2008-10-07 19:02 UTC (permalink / raw) To: Glenn Morris; +Cc: yavor, 1079 Glenn Morris wrote: > > > Which version of GNUstep Base is this? > > gnustep-startup-0.20.0.tar That should contain the latest stable releases, so it must be OK (I've never installed this way, though.) > base/NSInvocation/general.m: > FAIL: Can send/return large structs This is a bit worrisome. Just to rule out the possibility, can you compile gnustep-base against libffi in case it was built with libffcall (and vice-versa -- rebuild it with libffcall if it was with libffi). There were numerous problems with both, and libffi became preferred by upstream a few months ago. > > Does the naive patch below eliminate this problem? > > I'm afraid not. Oh, of course not; this file is not being read at all at this point. Nevertheless, still fixes a harmless runtime warning. > Here is a full backtrace this time: Thanks. I can't see how this can be a bug in Emacs. The arguments of bootstrap-emacs are evaluated as property lists and since "(setq foo 1)" (or whatever is passed to --batch in such form) is not a validly formatted array, an NSException is raised here: #5 0x00002b51204f9fbb in GSPropertyListFromStringsFormat (string=0x1b392730) at NSPropertyList.m:1505 dict = (class NSMutableDictionary *) 0x0 _pld = { ptr = 0x1b281c70 "(setq foo 1)", end = 12, pos = 0, lin = 0, err = 0x2b512095f000, opt = NSPropertyListImmutable, key = 0 '\000', old = 1 '\001' } However, this exception should be caught and handled by the parent exception handler at NSUserDefaults.m:1814 -- note the comment there: else { // Real parameter /* Parsing the argument as a property list is very delicate. We *MUST NOT* crash here just because a strange parameter (such as `(load "test.scm")`) is passed, otherwise the whole library is useless in a foreign environment. */ NSObject *plist_val; NS_DURING [....] This is precisely the case here, and it's handled properly on i386. It is getting too complicated for me, but can you compile this test program (it should never crash): test.m: ======= #import <Foundation/Foundation.h> int main (int argc, char** argv, char **env) { NSAutoreleasePool *pool = [NSAutoreleasePool new]; NSProcessInfo *proc = [NSProcessInfo processInfo]; NSBundle *bundle = [NSBundle mainBundle]; NSArray *args; unsigned i; int retval = 0; [NSProcessInfo initializeWithArguments:argv count:argc environment:env]; args = [proc arguments]; GSPrintf (stderr, @"Useless info about bundle: %@\n", bundle); if ([args count] <= 1) { GSPrintf (stderr, @"Please specify some arguments.\n"); RELEASE (pool); exit (EXIT_FAILURE); } else if ([[proc environment] valueForKey:@"NOHANDLE"] != nil) GSPrintf (stderr, @"NOHANDLE defined; should exit with success.\n"); else { for (i = 1; i < [args count]; i++) { NSString *opt = [args objectAtIndex: i]; NS_DURING { NSString *tempString; id result; tempString = [NSString stringWithString: opt]; if (tempString == nil) GSPrintf (stderr, @"This should not happen.\n"); /* Exception handler taking care here. */ else if (![tempString propertyList]); else if ((result = [tempString propertyList]) == nil) GSPrintf (stderr, @"'%@' - a nil property list.\n", opt); else if ([result isKindOfClass: [NSDictionary class]] == YES) GSPrintf (stderr, @"'%@' - a dictionary.\n", opt); else if ([result isKindOfClass: [NSArray class]] == YES) GSPrintf (stderr, @"'%@' - an array.\n", opt); else if ([result isKindOfClass: [NSString class]] == YES) GSPrintf (stderr, @"'%@' - a string.\n", opt); else GSPrintf (stderr, @"'%@' - unknown class %@.\n", opt, [[result class] description]); } NS_HANDLER { GSPrintf (stderr, @"'%@' failed with:\n%@.\n", opt, [localException reason]); GSPrintf (stderr, @"Failure.\n"); retval = 1; } NS_ENDHANDLER } } RELEASE (pool); return retval; } You can use this simple makefile to build it: GNUmakefile: ============ include $(GNUSTEP_MAKEFILES)/common.make TOOL_NAME = test test_OBJC_FILES = test.m include $(GNUSTEP_MAKEFILES)/tool.make Just type `make'. Then test it as follows (the executable should be /obj/test): (gdb) r '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' ... (gdb) set environment NOHANDLE=yes (gdb) r (with the same arguments) Thanks. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-07 19:02 ` Yavor Doganov @ 2008-10-08 7:51 ` Glenn Morris 2008-10-08 11:55 ` Yavor Doganov 0 siblings, 1 reply; 14+ messages in thread From: Glenn Morris @ 2008-10-08 7:51 UTC (permalink / raw) To: 1079; +Cc: yavor Yavor Doganov wrote: > Just to rule out the possibility, can you compile gnustep-base > against libffi in case it was built with libffcall (and vice-versa > -- rebuild it with libffcall if it was with libffi). I don't have either. gnustep-startup provides both, but uses ffcall by default. I tried to get it to use ffi instead, but it did not work out of the box and I haven't had time to look into it yet. > Nevertheless, still fixes a harmless runtime warning. Installed. > It is getting too complicated for me, but can you compile this test > program (it should never crash): Never say never... 32-bit: (gdb) r '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' Starting program: /scratch/gmorris/tmp/gnustep/obj/test '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' [Thread debugging using libthread_db enabled] [New Thread -1208932672 (LWP 26878)] Useless info about bundle: <NSBundle: 0x93e3970> </scratch/gmorris/tmp/gnustep/Resources/test> '{a=b; c=d}' - a dictionary. '(foo, bar)' - an array. '--batch' - a string. '(setq foo 1)' failed with: Parse failed - Parse failed at line 1 (char 7) - unexpected character (wanted ',' or ')'). Failure. Program exited with code 01. (gdb) set environment NOHANDLE=yes (gdb) r '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' Starting program: /scratch/gmorris/tmp/gnustep/obj/test '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' [Thread debugging using libthread_db enabled] [New Thread -1208916288 (LWP 26885)] Useless info about bundle: <NSBundle: 0x8edf9b8> </scratch/gmorris/tmp/gnustep/Resources/test> NOHANDLE defined; should exit with success. Program exited normally. 64-bit: (gdb) r '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' Starting program: /scratch/gmorris/tmp/gnustep/obj/test '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' [Thread debugging using libthread_db enabled] [New Thread 47102936683440 (LWP 11003)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47102936683440 (LWP 11003)] 0x00002ad701150af6 in NSCountFrames () at NSDebug.m:994 994 NSDebug.m: No such file or directory. in NSDebug.m #0 0x00002ad701150af6 in NSCountFrames () at NSDebug.m:994 env = (jbuf_type *) 0x573a370 #1 0x00002ad701158ff3 in GSPrivateStackAddresses () at NSDebug.m:1100 n = 0 stack = (class NSMutableArray *) 0x2ad70167e020 pool = (class NSAutoreleasePool *) 0x7fffa9b14020 i = 10967 env = (jbuf_type *) 0x8 #2 0x00002ad70116f920 in -[NSException raise] (self=0x5738c50, _cmd=0x2ad70161a440) at NSException.m:822 __value = (struct objc_object *) 0x5738c50 __object = (struct objc_object *) 0x7fffa9b140c0 thread = (TInfo) 0x57394b0 handler = (NSHandler *) 0x2ad701619aa0 recursion = 0 #3 0x00002ad70116f3f4 in +[NSException raise:format:arguments:] ( self=0x2ad701619fe0, _cmd=0x2ad70161a410, name=0x2ad701619aa0, format=0x2ad701649020, argList=0x7fffa9b14100) at NSException.m:765 reason = (class NSString *) 0x57394b0 except = (class NSException *) 0x5738c50 #4 0x00002ad70116f32a in +[NSException raise:format:] (self=0x2ad701619fe0, _cmd=0x2ad70164a6b0, name=0x2ad701619aa0, format=0x2ad701649020) at NSException.m:751 args = {{ gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffa9b141f0, reg_save_area = 0x7fffa9b14120 }} ---Type <return> to continue, or q <return> to quit--- #5 0x00002ad7011e3fbb in GSPropertyListFromStringsFormat (string=0x56ee4e0) at NSPropertyList.m:1505 dict = (class NSMutableDictionary *) 0x0 _pld = { ptr = 0x5737450 "(setq foo 1)8", end = 12, pos = 0, lin = 0, err = 0x2ad701649000, opt = NSPropertyListImmutable, key = 0 '\000', old = 1 '\001' } pld = (pldata *) 0x7fffa9b14210 d = (class NSData *) 0x5738e00 __PRETTY_FUNCTION__ = "GSPropertyListFromStringsFormat" #6 0x00002ad70121e474 in -[NSString propertyList] (self=0x56ee4e0, _cmd=0x2ad701678f80) at NSString.m:4701 NSLocalHandler = { jumpState = {{ __jmpbuf = {47102929706784, -6946947468941412056, 91449456, 47102923872888, 91075728, 0, -6946947468941410312, -6947038554855696004}, __mask_was_saved = 0, ---Type <return> to continue, or q <return> to quit--- __saved_mask = { __val = {47102924024290, 0, 6, 34359738380, 47102929894528, 47102929784384, 91153632, 140736040354784, 47102925290065, 34450891952, 47102929894528, 47102929784464, 91153632, 51539607552, 91153632, 140736040354864} } }}, next = 0x7fffa9b14450, exception = 0x7fffa9b14430 } data = (class NSData *) 0x57374a0 result = (struct objc_object *) 0x0 format = NSPropertyListOpenStepFormat error = (class NSString *) 0x5738d80 #7 0x00002ad7012515f3 in -[NSUserDefaults __createArgumentDictionary] ( self=0x57341d0, _cmd=0x2ad701678bf0) at NSUserDefaults.m:1816 NSLocalHandler = { ---Type <return> to continue, or q <return> to quit--- jumpState = {{ __jmpbuf = {91153632, -6946947468941412200, 91449456, 47102923872888, 91075728, 0, -6946947468941412008, -6947038554855380769}, __mask_was_saved = 0, __saved_mask = { __val = {0, 91449728, 10, 140736040355024, 47102923869137, 240, 47102929920032, 140736040355104, 47102923868903, 43041122496, 91449464, 5, 91449696, 8, 91449728, 18446744073709551615} } }}, ---Type <return> to continue, or q <return> to quit--- next = 0x0, exception = 0x7fffa9b14550 } plist_val = (class NSObject *) 0xa01678900 old = (class NSString *) 0x0 args = (class NSArray *) 0x56f0830 enumerator = (class NSEnumerator *) 0x5736d00 argDict = (class NSMutableDictionary *) 0x5737320 done = 0 '\000' key = (struct objc_object *) 0x5737420 val = (struct objc_object *) 0x56ee4e0 #8 0x00002ad70124ce0e in -[NSUserDefaults initWithContentsOfFile:] ( self=0x57341d0, _cmd=0x2ad701678ae0, path=0x5734fa0) at NSUserDefaults.m:872 mgr = (class NSFileManager *) 0x5706160 r = { location = 2147483647, length = 0 } loadReadonly = 0 '\000' flag = 0 '\000' objc_super = { self = 0x57341d0, super_class = 0x2ad70163a860 } #9 0x00002ad70124c349 in -[NSUserDefaults initWithUser:] (self=0x57341d0, _cmd=0x2ad701678ad0, userName=0x56ae9f0) at NSUserDefaults.m:774 path = (class NSString *) 0x5734e60 #10 0x00002ad70124c2c4 in -[NSUserDefaults init] (self=0x57341d0, ---Type <return> to continue, or q <return> to quit--- _cmd=0x2ad701678910) at NSUserDefaults.m:765 No locals. #11 0x00002ad70124b383 in +[NSUserDefaults standardUserDefaults] ( self=0x2ad7016786c0, _cmd=0x2ad701678870) at NSUserDefaults.m:474 added_lang = 0 '\000' added_locale = 0 '\000' lang = (struct objc_object *) 0x2ad7018e8708 uL = (class NSArray *) 0x7fffa9b14760 enumerator = (class NSEnumerator *) 0x2ad7010a7fba #12 0x00002ad70124bc78 in +[NSUserDefaults userLanguages] ( self=0x2ad7016786c0, _cmd=0x2ad7015fa9f0) at NSUserDefaults.m:682 currLang = (class NSArray *) 0x0 locale = (class NSString *) 0x57341a0 result = (class NSArray *) 0x2ad7018e8708 #13 0x00002ad70110ab99 in +[NSBundle _bundleResourcePathsWithRootPath:subPath:] (self=0x2ad7015fa360, _cmd=0x2ad7015faa00, rootPath=0x57283d0, subPath=0x0) at NSBundle.m:1603 primary = (class NSString *) 0x2ad7015f7e90 language = (class NSString *) 0x56df120 languages = (class NSArray *) 0x2ad70125a36f array = (class NSMutableArray *) 0x572e4a0 enumerate = (class NSEnumerator *) 0x2ad7015fa360 #14 0x00002ad70110ae05 in +[NSBundle pathForResource:ofType:inRootPath:inDirectory:withVersion:] (self=0x2ad7015fa360, _cmd=0x2ad7015faa10, name=0x2ad7015f9760, ext=0x2ad7015f9780, rootPath=0x57283d0, subPath=0x0, version=0) at NSBundle.m:1637 path = (class NSString *) 0x0 fullpath = (class NSString *) 0x2ad70163a860 pathlist = (class NSEnumerator *) 0x7fffa9b148d0 ---Type <return> to continue, or q <return> to quit--- #15 0x00002ad70110b31f in -[NSBundle pathForResource:ofType:inDirectory:] ( self=0x572d710, _cmd=0x2ad7015fa770, name=0x2ad7015f9760, ext=0x2ad7015f9780, subPath=0x0) at NSBundle.m:1732 rootPath = (class NSString *) 0x57283d0 #16 0x00002ad70110b1e4 in -[NSBundle pathForResource:ofType:] (self=0x572d710, _cmd=0x2ad7015fab10, name=0x2ad7015f9760, ext=0x2ad7015f9780) at NSBundle.m:1713 No locals. #17 0x00002ad70110d0f5 in -[NSBundle infoDictionary] (self=0x572d710, _cmd=0x2ad7015fa990) at NSBundle.m:2192 path = (class NSString *) 0x7fffa9b149f0 #18 0x00002ad70110d3d5 in -[NSBundle bundleIdentifier] (self=0x572d710, _cmd=0x2ad7015fa8f0) at NSBundle.m:2237 No locals. #19 0x00002ad7011098b3 in -[NSBundle initWithPath:] (self=0x572d710, _cmd=0x2ad7015fa750, path=0x57283d0) at NSBundle.m:1315 identifier = (class NSString *) 0x2ad7015fa750 objc_super = { self = 0x572d710, super_class = 0x2ad70163a860 } #20 0x00002ad7011092a0 in +[NSBundle bundleWithPath:] (self=0x2ad7015fa360, _cmd=0x2ad7015fabc0, path=0x572d530) at NSBundle.m:1192 No locals. #21 0x00002ad70110d980 in +[NSBundle(GNUstep) bundleForLibrary:version:] ( self=0x2ad7015fa360, _cmd=0x2ad7015fa820, libraryName=0x5706f40, interfaceVersion=0x2ad7015f9080) at NSBundle.m:2352 b = (class NSBundle *) 0x2ad7016df315 isDir = 1 '\001' ---Type <return> to continue, or q <return> to quit--- paths = (class NSArray *) 0x5706f80 enumerator = (class NSEnumerator *) 0x5729420 path = (class NSString *) 0x572d530 fm = (class NSFileManager *) 0x5706160 #22 0x00002ad70110806a in +[NSBundle initialize] (self=0x2ad7015fa360, _cmd=0x2ad70167eef0) at NSBundle.m:819 env = (class NSDictionary *) 0x570d850 str = (class NSString *) 0x5701b30 #23 0x00002ad7016df04d in objc_msg_lookup () from /usr/lib64/libobjc.so.1 No symbol table info available. #24 0x0000000000400c12 in main (argc=5, argv=0x7fffa9b14e98, env=0x7fffa9b14ec8) at test.m:8 pool = (class NSAutoreleasePool *) 0x56df120 proc = (class NSProcessInfo *) 0x56ad230 bundle = (class NSBundle *) 0x382141abc0 args = (class NSArray *) 0x401220 i = 4196843 retval = 0 (gdb) set environment NOHANDLE=yes (gdb) r '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' Starting program: /scratch/gmorris/tmp/gnustep/obj/test '{a=b; c=d}' '(foo, bar)' --batch '(setq foo 1)' [Thread debugging using libthread_db enabled] [New Thread 47495076418480 (LWP 11065)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47495076418480 (LWP 11065)] 0x00002b324e6e8af6 in NSCountFrames () at NSDebug.m:994 994 NSDebug.m: No such file or directory. in NSDebug.m (gdb) bt full #0 0x00002b324e6e8af6 in NSCountFrames () at NSDebug.m:994 env = (jbuf_type *) 0xac85460 #1 0x00002b324e6f0ff3 in GSPrivateStackAddresses () at NSDebug.m:1100 n = 0 stack = (class NSMutableArray *) 0x2b324ec16020 pool = (class NSAutoreleasePool *) 0x7fff5c579a70 i = 11058 env = (jbuf_type *) 0x8 #2 0x00002b324e707920 in -[NSException raise] (self=0xac83d40, _cmd=0x2b324ebb2440) at NSException.m:822 __value = (struct objc_object *) 0xac83d40 __object = (struct objc_object *) 0x7fff5c579b10 thread = (TInfo) 0xac845a0 handler = (NSHandler *) 0x2b324ebb1aa0 recursion = 0 #3 0x00002b324e7073f4 in +[NSException raise:format:arguments:] ( self=0x2b324ebb1fe0, _cmd=0x2b324ebb2410, name=0x2b324ebb1aa0, format=0x2b324ebe1020, argList=0x7fff5c579b50) at NSException.m:765 reason = (class NSString *) 0xac845a0 except = (class NSException *) 0xac83d40 #4 0x00002b324e70732a in +[NSException raise:format:] (self=0x2b324ebb1fe0, _cmd=0x2b324ebe26b0, name=0x2b324ebb1aa0, format=0x2b324ebe1020) at NSException.m:751 args = {{ gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fff5c579c40, reg_save_area = 0x7fff5c579b70 }} ---Type <return> to continue, or q <return> to quit--- #5 0x00002b324e77bfbb in GSPropertyListFromStringsFormat (string=0xac39500) at NSPropertyList.m:1505 dict = (class NSMutableDictionary *) 0x0 _pld = { ptr = 0xac82540 "(setq foo 1)8", end = 12, pos = 0, lin = 0, err = 0x2b324ebe1000, opt = NSPropertyListImmutable, key = 0 '\000', old = 1 '\001' } pld = (pldata *) 0x7fff5c579c60 d = (class NSData *) 0xac83ef0 __PRETTY_FUNCTION__ = "GSPropertyListFromStringsFormat" #6 0x00002b324e7b6474 in -[NSString propertyList] (self=0xac39500, _cmd=0x2b324ec10f80) at NSString.m:4701 NSLocalHandler = { jumpState = {{ __jmpbuf = {47495069441824, 5927823237564070548, 180885856, 47495063607928, 180511920, 0, 5927823237564070180, 5927738896990535792}, __mask_was_saved = 0, ---Type <return> to continue, or q <return> to quit--- __saved_mask = { __val = {47495063759330, 0, 6, 34359738380, 47495069629568, 47495069519424, 180589824, 140734742634032, 47495065025105, 34540328144, 47495069629568, 47495069519504, 180589824, 51539607552, 180589824, 140734742634112} } }}, next = 0x7fff5c579ea0, exception = 0x7fff5c579e80 } data = (class NSData *) 0xac82590 result = (struct objc_object *) 0x0 format = NSPropertyListOpenStepFormat error = (class NSString *) 0xac83e70 #7 0x00002b324e7e95f3 in -[NSUserDefaults __createArgumentDictionary] ( self=0xac7f2c0, _cmd=0x2b324ec10bf0) at NSUserDefaults.m:1816 NSLocalHandler = { ---Type <return> to continue, or q <return> to quit--- jumpState = {{ __jmpbuf = {180589824, 5927823237564070852, 180885856, 47495063607928, 180511920, 0, 5927823237564070532, 5927738896990794195}, __mask_was_saved = 0, __saved_mask = { __val = {0, 180886128, 10, 140734742634272, 47495063604177, 240, 47495069655072, 140734742634352, 47495063603943, 43130558896, 180885864, 5, 180886096, 8, 180886128, 18446744073709551615} } }}, ---Type <return> to continue, or q <return> to quit--- next = 0x0, exception = 0x7fff5c579fa0 } plist_val = (class NSObject *) 0xa4ec10900 old = (class NSString *) 0x0 args = (class NSArray *) 0xac3b850 enumerator = (class NSEnumerator *) 0xac81df0 argDict = (class NSMutableDictionary *) 0xac82410 done = 0 '\000' key = (struct objc_object *) 0xac82510 val = (struct objc_object *) 0xac39500 #8 0x00002b324e7e4e0e in -[NSUserDefaults initWithContentsOfFile:] ( self=0xac7f2c0, _cmd=0x2b324ec10ae0, path=0xac80090) at NSUserDefaults.m:872 mgr = (class NSFileManager *) 0xac51170 r = { location = 2147483647, length = 0 } loadReadonly = 0 '\000' flag = 0 '\000' objc_super = { self = 0xac7f2c0, super_class = 0x2b324ebd2860 } #9 0x00002b324e7e4349 in -[NSUserDefaults initWithUser:] (self=0xac7f2c0, _cmd=0x2b324ec10ad0, userName=0xabf99f0) at NSUserDefaults.m:774 path = (class NSString *) 0xac7ff50 #10 0x00002b324e7e42c4 in -[NSUserDefaults init] (self=0xac7f2c0, ---Type <return> to continue, or q <return> to quit--- _cmd=0x2b324ec10910) at NSUserDefaults.m:765 No locals. #11 0x00002b324e7e3383 in +[NSUserDefaults standardUserDefaults] ( self=0x2b324ec106c0, _cmd=0x2b324ec10870) at NSUserDefaults.m:474 added_lang = 0 '\000' added_locale = 0 '\000' lang = (struct objc_object *) 0x2b324ee80708 uL = (class NSArray *) 0x7fff5c57a1b0 enumerator = (class NSEnumerator *) 0x2b324e63ffba #12 0x00002b324e7e3c78 in +[NSUserDefaults userLanguages] ( self=0x2b324ec106c0, _cmd=0x2b324eb929f0) at NSUserDefaults.m:682 currLang = (class NSArray *) 0x0 locale = (class NSString *) 0xac7f290 result = (class NSArray *) 0x2b324ee80708 #13 0x00002b324e6a2b99 in +[NSBundle _bundleResourcePathsWithRootPath:subPath:] (self=0x2b324eb92360, _cmd=0x2b324eb92a00, rootPath=0xac734c0, subPath=0x0) at NSBundle.m:1603 primary = (class NSString *) 0x2b324eb8fe90 language = (class NSString *) 0xac2a140 languages = (class NSArray *) 0x2b324e7f236f array = (class NSMutableArray *) 0xac79590 enumerate = (class NSEnumerator *) 0x2b324eb92360 #14 0x00002b324e6a2e05 in +[NSBundle pathForResource:ofType:inRootPath:inDirectory:withVersion:] (self=0x2b324eb92360, _cmd=0x2b324eb92a10, name=0x2b324eb91760, ext=0x2b324eb91780, rootPath=0xac734c0, subPath=0x0, version=0) at NSBundle.m:1637 path = (class NSString *) 0x0 fullpath = (class NSString *) 0x2b324ebd2860 pathlist = (class NSEnumerator *) 0x7fff5c57a320 ---Type <return> to continue, or q <return> to quit--- #15 0x00002b324e6a331f in -[NSBundle pathForResource:ofType:inDirectory:] ( self=0xac78800, _cmd=0x2b324eb92770, name=0x2b324eb91760, ext=0x2b324eb91780, subPath=0x0) at NSBundle.m:1732 rootPath = (class NSString *) 0xac734c0 #16 0x00002b324e6a31e4 in -[NSBundle pathForResource:ofType:] (self=0xac78800, _cmd=0x2b324eb92b10, name=0x2b324eb91760, ext=0x2b324eb91780) at NSBundle.m:1713 No locals. #17 0x00002b324e6a50f5 in -[NSBundle infoDictionary] (self=0xac78800, _cmd=0x2b324eb92990) at NSBundle.m:2192 path = (class NSString *) 0x7fff5c57a440 #18 0x00002b324e6a53d5 in -[NSBundle bundleIdentifier] (self=0xac78800, _cmd=0x2b324eb928f0) at NSBundle.m:2237 No locals. #19 0x00002b324e6a18b3 in -[NSBundle initWithPath:] (self=0xac78800, _cmd=0x2b324eb92750, path=0xac734c0) at NSBundle.m:1315 identifier = (class NSString *) 0x2b324eb92750 objc_super = { self = 0xac78800, super_class = 0x2b324ebd2860 } #20 0x00002b324e6a12a0 in +[NSBundle bundleWithPath:] (self=0x2b324eb92360, _cmd=0x2b324eb92bc0, path=0xac78620) at NSBundle.m:1192 No locals. #21 0x00002b324e6a5980 in +[NSBundle(GNUstep) bundleForLibrary:version:] ( self=0x2b324eb92360, _cmd=0x2b324eb92820, libraryName=0xac51f50, interfaceVersion=0x2b324eb91080) at NSBundle.m:2352 b = (class NSBundle *) 0x2b324ec77315 isDir = 1 '\001' ---Type <return> to continue, or q <return> to quit--- paths = (class NSArray *) 0xac51f90 enumerator = (class NSEnumerator *) 0xac74510 path = (class NSString *) 0xac78620 fm = (class NSFileManager *) 0xac51170 #22 0x00002b324e6a006a in +[NSBundle initialize] (self=0x2b324eb92360, _cmd=0x2b324ec16ef0) at NSBundle.m:819 env = (class NSDictionary *) 0xac58930 str = (class NSString *) 0xac4cc00 #23 0x00002b324ec7704d in objc_msg_lookup () from /usr/lib64/libobjc.so.1 No symbol table info available. #24 0x0000000000400c12 in main (argc=5, argv=0x7fff5c57a8e8, env=0x7fff5c57a918) at test.m:8 pool = (class NSAutoreleasePool *) 0xac2a140 proc = (class NSProcessInfo *) 0xabf8230 bundle = (class NSBundle *) 0x382141abc0 args = (class NSArray *) 0x401220 i = 4196843 retval = 0 ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-08 7:51 ` Glenn Morris @ 2008-10-08 11:55 ` Yavor Doganov 2008-10-10 1:03 ` Glenn Morris 0 siblings, 1 reply; 14+ messages in thread From: Yavor Doganov @ 2008-10-08 11:55 UTC (permalink / raw) To: Glenn Morris, 1079; +Cc: yavor Glenn Morris wrote: > > I don't have either. gnustep-startup provides both, but uses ffcall > by default. I tried to get it to use ffi instead, but it did not > work out of the box and I haven't had time to look into it yet. AFAICS ./InstallGNUstep --ffi=libffi should DTRT. Failing that, ./configure --enable-libffi --disable-ffcall in the gnustep-base tree should suffice (after installing libffi). It is enough to recompile only GNUstep Base, not the whole thing. Maybe someone else with access on a x86_64 machine can try this. > > can you compile this test program (it should never crash): > > Never say never... It is excellent that it crashes, this confirms it's a GNUstep bug. It looks like it is unable to pass the exception up to the call stack or something like that. Before reporting it to the GNUstep developers, it would be useful to: 1) Check if it still crashes with -base built against libffi. 2) Check if the problem persists in SVN trunk: svn co http://svn.gna.org/svn/gnustep/libs/base/trunk gnustep-base ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-08 11:55 ` Yavor Doganov @ 2008-10-10 1:03 ` Glenn Morris 2008-10-10 1:15 ` Processed: " Emacs bug Tracking System 0 siblings, 1 reply; 14+ messages in thread From: Glenn Morris @ 2008-10-10 1:03 UTC (permalink / raw) To: 1079; +Cc: yavor reassign 1079 gnustep stop Yavor Doganov wrote: > AFAICS ./InstallGNUstep --ffi=libffi should DTRT. It doesn't work, it builds libffcall anyway. > It is excellent that it crashes, this confirms it's a GNUstep bug. Reassigned as such. > 1) Check if it still crashes with -base built against libffi. > 2) Check if the problem persists in SVN trunk: > svn co http://svn.gna.org/svn/gnustep/libs/base/trunk gnustep-base Still crashes with trunk gnustep-base built against libffi. Backtrace: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47788427799904 (LWP 5561)] 0x00002b769ba95ea2 in NSCountFrames () at NSDebug.m:994 994 _NS_COUNT_HACK(24); _NS_COUNT_HACK(25); _NS_COUNT_HACK(26); (gdb) bt full #0 0x00002b769ba95ea2 in NSCountFrames () at NSDebug.m:994 env = (jbuf_type *) 0xe4cda90 #1 0x00002b769ba9e39f in GSPrivateStackAddresses () at NSDebug.m:1100 n = 0 stack = (class NSMutableArray *) 0x2b769bfc06e0 pool = (class NSAutoreleasePool *) 0x7fff0f1d3670 i = 11126 env = (jbuf_type *) 0x8 #2 0x00002b769bab4f00 in -[NSException raise] (self=0xe4cc370, _cmd=0x2b769bf5c5e0) at NSException.m:824 __value = (struct objc_object *) 0xe4cc370 __object = (struct objc_object *) 0x7fff0f1d3710 thread = (TInfo) 0xe4ccbd0 handler = (NSHandler *) 0x2b769bf5bc40 recursion = 0 #3 0x00002b769bab49d4 in +[NSException raise:format:arguments:] ( self=0x2b769bf5c180, _cmd=0x2b769bf5c5b0, name=0x2b769bf5bc40, format=0x2b769bf8b5c0, argList=0x7fff0f1d3750) at NSException.m:767 reason = (class NSString *) 0xe4ccbd0 except = (class NSException *) 0xe4cc370 #4 0x00002b769bab490a in +[NSException raise:format:] (self=0x2b769bf5c180, _cmd=0x2b769bf8cc50, name=0x2b769bf5bc40, format=0x2b769bf8b5c0) at NSException.m:753 args = {{ gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fff0f1d3840, reg_save_area = 0x7fff0f1d3770 }} ---Type <return> to continue, or q <return> to quit--- #5 0x00002b769bb29a1b in GSPropertyListFromStringsFormat (string=0xe481290) at NSPropertyList.m:1510 dict = (class NSMutableDictionary *) 0x0 _pld = { ptr = 0xe4caa60 "(setq foo 1)8", end = 12, pos = 0, lin = 0, err = 0x2b769bf8b5a0, opt = NSPropertyListImmutable, key = 0 '\000', old = 1 '\001' } pld = (pldata *) 0x7fff0f1d3860 d = (class NSData *) 0xe4cc520 __PRETTY_FUNCTION__ = "GSPropertyListFromStringsFormat" #6 0x00002b769bb6404b in -[NSString propertyList] (self=0xe481290, _cmd=0x2b769bfbb640) at NSString.m:4704 NSLocalHandler = { jumpState = {{ __jmpbuf = {47788422907072, -4067403250950454424, 239902336, 47788417072620, 239527008, 0, -4067403250950455080, -4067319175159268909}, __mask_was_saved = 0, ---Type <return> to continue, or q <return> to quit--- __saved_mask = { __val = {47788422984784, 239604368, 239604368, 239902336, 47788417072620, 239527008, 0, 140733446961712, 47788418504034, 34599342688, 47788423095104, 47788422984864, 239604368, 51539607552, 239604368, 140733446961792} } }}, next = 0x7fff0f1d3aa0, exception = 0x7fff0f1d3a80 } data = (class NSData *) 0xe4caab0 result = (struct objc_object *) 0x0 format = NSPropertyListOpenStepFormat error = (class NSString *) 0xe4cc4a0 #7 0x00002b769bb9745c in -[NSUserDefaults __createArgumentDictionary] ( self=0xe4c76d0, _cmd=0x2b769bfbb2b0) at NSUserDefaults.m:1816 NSLocalHandler = { ---Type <return> to continue, or q <return> to quit--- jumpState = {{ __jmpbuf = {239604368, -4067403250950454728, 239902336, 47788417072620, 239527008, 0, -4067403250950454408, -4067319175160263208}, __mask_was_saved = 0, __saved_mask = { __val = {0, 239902608, 10, 140733446961952, 47788417068869, 240, 47788423120608, 140733446962032, 47788417068635, 43189575376, 239902344, 5, 239902576, 8, 239902608, 18446744073709551615} } }}, ---Type <return> to continue, or q <return> to quit--- next = 0x0, exception = 0x7fff0f1d3ba0 } plist_val = (class NSObject *) 0xa9bfbafc0 old = (class NSString *) 0x0 args = (class NSArray *) 0xe4836f0 enumerator = (class NSEnumerator *) 0xe4ca310 argDict = (class NSMutableDictionary *) 0xe4ca930 done = 0 '\000' key = (struct objc_object *) 0xe4caa30 val = (struct objc_object *) 0xe481290 #8 0x00002b769bb92c5a in -[NSUserDefaults initWithContentsOfFile:] ( self=0xe4c76d0, _cmd=0x2b769bfbb1a0, path=0xe4c85b0) at NSUserDefaults.m:872 mgr = (class NSFileManager *) 0xe499120 r = { location = 2147483647, length = 0 } loadReadonly = 0 '\000' flag = 0 '\000' objc_super = { self = 0xe4c76d0, super_class = 0x2b769bf7ce00 } #9 0x00002b769bb92195 in -[NSUserDefaults initWithUser:] (self=0xe4c76d0, _cmd=0x2b769bfbb190, userName=0xe442c60) at NSUserDefaults.m:774 path = (class NSString *) 0xe4c8470 #10 0x00002b769bb92110 in -[NSUserDefaults init] (self=0xe4c76d0, ---Type <return> to continue, or q <return> to quit--- _cmd=0x2b769bfbafd0) at NSUserDefaults.m:765 No locals. #11 0x00002b769bb911cf in +[NSUserDefaults standardUserDefaults] ( self=0x2b769bfbad80, _cmd=0x2b769bfbaf30) at NSUserDefaults.m:474 added_lang = 0 '\000' added_locale = 0 '\000' lang = (struct objc_object *) 0x2b769c22b708 uL = (class NSArray *) 0x7fff0f1d3db0 enumerator = (class NSEnumerator *) 0x2b769b9e90ea #12 0x00002b769bb91ac4 in +[NSUserDefaults userLanguages] ( self=0x2b769bfbad80, _cmd=0x2b769bf3caf0) at NSUserDefaults.m:682 currLang = (class NSArray *) 0x0 locale = (class NSString *) 0xe4c76a0 result = (class NSArray *) 0x2b769c22b708 #13 0x00002b769ba4fded in +[NSBundle _bundleResourcePathsWithRootPath:subPath:] (self=0x2b769bf3c460, _cmd=0x2b769bf3cb00, rootPath=0xe4bb830, subPath=0x0) at NSBundle.m:1603 primary = (class NSString *) 0x2b769bf9db60 language = (class NSString *) 0x9 languages = (class NSArray *) 0x100000000 array = (class NSMutableArray *) 0xe4c19c0 enumerate = (class NSEnumerator *) 0x2b769bf3c460 #14 0x00002b769ba50059 in +[NSBundle pathForResource:ofType:inRootPath:inDirectory:withVersion:] (self=0x2b769bf3c460, _cmd=0x2b769bf3cb10, name=0x2b769bf3b860, ext=0x2b769bf3b880, rootPath=0xe4bb830, subPath=0x0, version=0) at NSBundle.m:1637 path = (class NSString *) 0x7fff00000001 fullpath = (class NSString *) 0x2b769bb00170 pathlist = (class NSEnumerator *) 0x7fff0f1d3f20 ---Type <return> to continue, or q <return> to quit--- #15 0x00002b769ba50573 in -[NSBundle pathForResource:ofType:inDirectory:] ( self=0xe4c0b50, _cmd=0x2b769bf3c870, name=0x2b769bf3b860, ext=0x2b769bf3b880, subPath=0x0) at NSBundle.m:1732 rootPath = (class NSString *) 0xe4bb830 #16 0x00002b769ba50438 in -[NSBundle pathForResource:ofType:] (self=0xe4c0b50, _cmd=0x2b769bf3cc10, name=0x2b769bf3b860, ext=0x2b769bf3b880) at NSBundle.m:1713 No locals. #17 0x00002b769ba52349 in -[NSBundle infoDictionary] (self=0xe4c0b50, _cmd=0x2b769bf3ca90) at NSBundle.m:2192 path = (class NSString *) 0x7fff0f1d4040 #18 0x00002b769ba52629 in -[NSBundle bundleIdentifier] (self=0xe4c0b50, _cmd=0x2b769bf3c9f0) at NSBundle.m:2237 No locals. #19 0x00002b769ba4eb07 in -[NSBundle initWithPath:] (self=0xe4c0b50, _cmd=0x2b769bf3c850, path=0xe4bb830) at NSBundle.m:1315 identifier = (class NSString *) 0x2b769bf3c850 objc_super = { self = 0xe4c0b50, super_class = 0x2b769bf7ce00 } #20 0x00002b769ba4e4f4 in +[NSBundle bundleWithPath:] (self=0x2b769bf3c460, _cmd=0x2b769bf3ccc0, path=0xe4c0990) at NSBundle.m:1192 No locals. #21 0x00002b769ba52bd4 in +[NSBundle(GNUstep) bundleForLibrary:version:] ( self=0x2b769bf3c460, _cmd=0x2b769bf3c920, libraryName=0xe499f00, interfaceVersion=0x2b769bf3b180) at NSBundle.m:2352 b = (class NSBundle *) 0x2b769c022315 isDir = 1 '\001' ---Type <return> to continue, or q <return> to quit--- paths = (class NSArray *) 0xe499f40 enumerator = (class NSEnumerator *) 0xe4bc880 path = (class NSString *) 0xe4c0990 fm = (class NSFileManager *) 0xe499120 #22 0x00002b769ba4d2be in +[NSBundle initialize] (self=0x2b769bf3c460, _cmd=0x2b769bfc15b0) at NSBundle.m:819 env = (class NSDictionary *) 0xe4a0980 str = (class NSString *) 0xe494c60 #23 0x00002b769c02204d in objc_msg_lookup () from /usr/lib64/libobjc.so.1 No symbol table info available. #24 0x0000000000400c12 in main (argc=5, argv=0x7fff0f1d44e8, env=0x7fff0f1d4518) at test.m:8 pool = (class NSAutoreleasePool *) 0xe4720f0 proc = (class NSProcessInfo *) 0xe4414a0 bundle = (class NSBundle *) 0x382141abc0 args = (class NSArray *) 0x401220 i = 4196843 retval = 0 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Processed: Re: bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-10 1:03 ` Glenn Morris @ 2008-10-10 1:15 ` Emacs bug Tracking System 0 siblings, 0 replies; 14+ messages in thread From: Emacs bug Tracking System @ 2008-10-10 1:15 UTC (permalink / raw) To: Glenn Morris; +Cc: Emacs Bugs, gnustep #1079, ns #1079 Processing commands for control@emacsbugs.donarmstrong.com: > reassign 1079 gnustep bug#1079: GNUstep port segfaults making autoloads on x86_64 Warning: Unknown package 'ns' Warning: Unknown package 'gnustep' bug reassigned from package `emacs,ns' to `gnustep'. > stop Stopping processing here. Please contact me if you need assistance. Don Armstrong (administrator, Emacs bugs database) ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-03 21:18 bug#1079: GNUstep port segfaults making autoloads on x86_64 Glenn Morris 2008-10-04 1:04 ` Adrian Robert 2008-10-06 9:39 ` Yavor Doganov @ 2008-10-06 11:32 ` Yavor Doganov 2008-10-06 17:24 ` Glenn Morris 2 siblings, 1 reply; 14+ messages in thread From: Yavor Doganov @ 2008-10-06 11:32 UTC (permalink / raw) To: Glenn Morris, 1079 > #5 0x00002ac40fb5ffbb in GSPropertyListFromStringsFormat (string=0x1e02e600) > at NSPropertyList.m:1505 Maybe that's the culprit; -[NSString propertyList] is called, resulting in NSException, because the .plist file is not a valid dictionary (at least according to the plparse tool). Does the naive patch below eliminate this problem? 2008-10-06 Yavor Doganov <yavor@gnu.org> (tiny change) * GNUstep/Emacs.base/Resources/Info-gnustep.plist: Add missing semicolons to make it a valid dictionary. --- Info-gnustep.plist 21 авг 2008 15:40:28 +0300 1.3 +++ Info-gnustep.plist 06 окт 2008 13:31:32 +0300 @@ -99,7 +99,7 @@ { NSPortName = Emacs; NSMessage = requestService; - NSUserData = open-selection + NSUserData = open-selection; NSSendTypes = (NSStringPboardType); NSMenuItem = { default = "Emacs.app/New Buffer Containing Selection"; @@ -108,7 +108,7 @@ { NSPortName = Emacs; NSMessage = requestService; - NSUserData = open-file + NSUserData = open-file; NSSendTypes = (NSStringPboardType); NSMenuItem = { default = "Emacs.app/Open Selected File"; @@ -117,7 +117,7 @@ { NSPortName = Emacs; NSMessage = requestService; - NSUserData = mail-selection + NSUserData = mail-selection; NSSendTypes = (NSStringPboardType); NSMenuItem = { default = "Emacs.app/Email Selection"; @@ -126,7 +126,7 @@ { NSPortName = Emacs; NSMessage = requestService; - NSUserData = mail-to + NSUserData = mail-to; NSSendTypes = (NSStringPboardType); NSMenuItem = { default = "Emacs.app/Send Email to Selected Address"; ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#1079: GNUstep port segfaults making autoloads on x86_64 2008-10-06 11:32 ` Yavor Doganov @ 2008-10-06 17:24 ` Glenn Morris 0 siblings, 0 replies; 14+ messages in thread From: Glenn Morris @ 2008-10-06 17:24 UTC (permalink / raw) To: 1079; +Cc: yavor Yavor Doganov wrote: > Maybe that's the culprit; -[NSString propertyList] is called, > resulting in NSException, because the .plist file is not a valid > dictionary (at least according to the plparse tool). > > Does the naive patch below eliminate this problem? I'm afraid not. Here is a full backtrace this time: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47627448176928 (LWP 29014)] 0x00002b5120466af6 in NSCountFrames () at NSDebug.m:994 994 NSDebug.m: No such file or directory. in NSDebug.m Current language: auto; currently objective-c (gdb) bt full #0 0x00002b5120466af6 in NSCountFrames () at NSDebug.m:994 env = (jbuf_type *) 0x1b41bde0 #1 0x00002b512046eff3 in GSPrivateStackAddresses () at NSDebug.m:1100 n = 0 stack = (class NSMutableArray *) 0x2b5120994020 pool = (class NSAutoreleasePool *) 0x7fff8afb7100 i = 11089 env = (jbuf_type *) 0x8 #2 0x00002b5120485920 in -[NSException raise] (self=0x1b40b460, _cmd=0x2b5120930440) at NSException.m:822 __value = (struct objc_object *) 0x1b40b460 __object = (struct objc_object *) 0x7fff8afb71a0 thread = (TInfo) 0x1b40b740 handler = (NSHandler *) 0x2b512092faa0 recursion = 0 #3 0x00002b51204853f4 in +[NSException raise:format:arguments:] ( self=0x2b512092ffe0, _cmd=0x2b5120930410, name=0x2b512092faa0, format=0x2b512095f020, argList=0x7fff8afb71e0) at NSException.m:765 reason = (class NSString *) 0x1b40b740 except = (class NSException *) 0x1b40b460 #4 0x00002b512048532a in +[NSException raise:format:] (self=0x2b512092ffe0, _cmd=0x2b51209606b0, name=0x2b512092faa0, format=0x2b512095f020) at NSException.m:751 args = {{ gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fff8afb72d0, reg_save_area = 0x7fff8afb7200 }} ---Type <return> to continue, or q <return> to quit--- #5 0x00002b51204f9fbb in GSPropertyListFromStringsFormat (string=0x1b392730) at NSPropertyList.m:1505 dict = (class NSMutableDictionary *) 0x0 _pld = { ptr = 0x1b281c70 "(setq foo 1)", end = 12, pos = 0, lin = 0, err = 0x2b512095f000, opt = NSPropertyListImmutable, key = 0 '\000', old = 1 '\001' } pld = (pldata *) 0x7fff8afb72f0 d = (class NSData *) 0x1b4082e0 __PRETTY_FUNCTION__ = "GSPropertyListFromStringsFormat" #6 0x00002b5120534474 in -[NSString propertyList] (self=0x1b392730, _cmd=0x2b512098ef80) at NSString.m:4701 NSLocalHandler = { jumpState = {{ __jmpbuf = {47627439046432, 724778841060540000, 457201792, 47627433212536, 456591952, 0, 724778841060538544, 724721282700660500}, __mask_was_saved = 0, ---Type <return> to continue, or q <return> to quit--- __saved_mask = { __val = {47627433363938, 0, 5, 34359738380, 47627439234176, 47627439124032, 456730416, 140735525123264, 47627434629713, 34816468736, 47627439234176, 47627439124112, 456730416, 51539607552, 456730416, 140735525123344} } }}, next = 0x7fff8afb7530, exception = 0x7fff8afb7510 } data = (class NSData *) 0x1b408340 result = (struct objc_object *) 0x0 format = NSPropertyListOpenStepFormat error = (class NSString *) 0x1b40b4a0 #7 0x00002b51205675f3 in -[NSUserDefaults __createArgumentDictionary] ( self=0x1b3e85b0, _cmd=0x2b512098ebf0) at NSUserDefaults.m:1816 NSLocalHandler = { ---Type <return> to continue, or q <return> to quit--- jumpState = {{ __jmpbuf = {456730416, 724778841060539664, 457201792, 47627433212536, 456591952, 0, 724778841060539984, 724721282700869303}, __mask_was_saved = 0, __saved_mask = { __val = {0, 457203264, 10, 140735525123504, 47627433208785, 240, 47627439259680, 140735525123584, 47627433208551, 43406905520, 457201800, 5, 455558080, 8, 457203264, 18446744073709551615} } }}, ---Type <return> to continue, or q <return> to quit--- next = 0x0, exception = 0x7fff8afb7630 } plist_val = (class NSObject *) 0xa2098e900 old = (class NSString *) 0x0 args = (class NSArray *) 0x1b3954b0 enumerator = (class NSEnumerator *) 0x1b40a690 argDict = (class NSMutableDictionary *) 0x1b404f10 done = 0 '\000' key = (struct objc_object *) 0x1b40b3e0 val = (struct objc_object *) 0x1b392730 #8 0x00002b5120562e0e in -[NSUserDefaults initWithContentsOfFile:] ( self=0x1b3e85b0, _cmd=0x2b512098eae0, path=0x1b3e97c0) at NSUserDefaults.m:872 mgr = (class NSFileManager *) 0x1b3aa130 r = { location = 2147483647, length = 0 } loadReadonly = 0 '\000' flag = 1 '\001' objc_super = { self = 0x1b3e85b0, super_class = 0x2b5120950860 } #9 0x00002b5120562349 in -[NSUserDefaults initWithUser:] (self=0x1b3e85b0, _cmd=0x2b512098ead0, userName=0x1b290330) at NSUserDefaults.m:774 path = (class NSString *) 0x1b3e96a0 #10 0x00002b51205622c4 in -[NSUserDefaults init] (self=0x1b3e85b0, ---Type <return> to continue, or q <return> to quit--- _cmd=0x2b512098e910) at NSUserDefaults.m:765 No locals. #11 0x00002b5120561383 in +[NSUserDefaults standardUserDefaults] ( self=0x2b512098e6c0, _cmd=0x2b512098e870) at NSUserDefaults.m:474 added_lang = 0 '\000' added_locale = 0 '\000' lang = (struct objc_object *) 0x500000000 uL = (class NSArray *) 0x7fff8afb7840 enumerator = (class NSEnumerator *) 0x2b51203bdee7 #12 0x00002b5120561c78 in +[NSUserDefaults userLanguages] ( self=0x2b512098e6c0, _cmd=0x2b51209109f0) at NSUserDefaults.m:682 currLang = (class NSArray *) 0x0 locale = (class NSString *) 0x0 result = (class NSArray *) 0x2b5120bff708 #13 0x00002b5120420b99 in +[NSBundle _bundleResourcePathsWithRootPath:subPath:] (self=0x2b5120910360, _cmd=0x2b5120910a00, rootPath=0x1b3d5160, subPath=0x0) at NSBundle.m:1603 primary = (class NSString *) 0x2b512090de90 language = (class NSString *) 0x1b375920 languages = (class NSArray *) 0x2b512057036f array = (class NSMutableArray *) 0x1b3ded80 enumerate = (class NSEnumerator *) 0x2b5120910360 #14 0x00002b5120420e05 in +[NSBundle pathForResource:ofType:inRootPath:inDirectory:withVersion:] (self=0x2b5120910360, _cmd=0x2b5120910a10, name=0x2b512090f760, ext=0x2b512090f780, rootPath=0x1b3d5160, subPath=0x0, version=0) at NSBundle.m:1637 path = (class NSString *) 0x0 fullpath = (class NSString *) 0x2b5120950860 pathlist = (class NSEnumerator *) 0x7fff8afb79b0 ---Type <return> to continue, or q <return> to quit--- #15 0x00002b512042131f in -[NSBundle pathForResource:ofType:inDirectory:] ( self=0x1b3dd610, _cmd=0x2b5120910770, name=0x2b512090f760, ext=0x2b512090f780, subPath=0x0) at NSBundle.m:1732 rootPath = (class NSString *) 0x1b3d5160 #16 0x00002b51204211e4 in -[NSBundle pathForResource:ofType:] ( self=0x1b3dd610, _cmd=0x2b5120910b10, name=0x2b512090f760, ext=0x2b512090f780) at NSBundle.m:1713 No locals. #17 0x00002b51204230f5 in -[NSBundle infoDictionary] (self=0x1b3dd610, _cmd=0x2b5120910990) at NSBundle.m:2192 path = (class NSString *) 0x7fff8afb7ad0 #18 0x00002b51204233d5 in -[NSBundle bundleIdentifier] (self=0x1b3dd610, _cmd=0x2b51209108f0) at NSBundle.m:2237 No locals. #19 0x00002b512041f8b3 in -[NSBundle initWithPath:] (self=0x1b3dd610, _cmd=0x2b5120910750, path=0x1b3d5160) at NSBundle.m:1315 identifier = (class NSString *) 0x2b5120910750 objc_super = { self = 0x1b3dd610, super_class = 0x2b5120950860 } #20 0x00002b512041f2a0 in +[NSBundle bundleWithPath:] (self=0x2b5120910360, _cmd=0x2b5120910bc0, path=0x1b3dd430) at NSBundle.m:1192 No locals. #21 0x00002b5120423980 in +[NSBundle(GNUstep) bundleForLibrary:version:] ( self=0x2b5120910360, _cmd=0x2b5120910820, libraryName=0x1b397380, interfaceVersion=0x2b512090f080) at NSBundle.m:2352 b = (class NSBundle *) 0x2b51209f6315 isDir = 1 '\001' ---Type <return> to continue, or q <return> to quit--- paths = (class NSArray *) 0x1b2900e0 enumerator = (class NSEnumerator *) 0x1b3d6ab0 path = (class NSString *) 0x1b3dd430 fm = (class NSFileManager *) 0x1b3aa130 #22 0x00002b512041e06a in +[NSBundle initialize] (self=0x2b5120910360, _cmd=0x2b5120994ef0) at NSBundle.m:819 env = (class NSDictionary *) 0x1b3aecb0 str = (class NSString *) 0x1b3a6100 #23 0x00002b51209f604d in objc_msg_lookup () from /usr/lib64/libobjc.so.1 No symbol table info available. #24 0x00000000006b8c20 in ns_init_paths () at nsterm.m:329 bundle = (class NSBundle *) 0x7fff8afb7d80 binDir = (class NSString *) 0x2b512041adff resourceDir = (class NSString *) 0x1b34fda0 resourcePath = (class NSString *) 0x1b375920 resourcePaths = (class NSString *) 0x7fff8afb7dc0 range = { location = 456612192, length = 0 } onWindows = 0 '\000' pathSeparator = (class NSString *) 0x7fff8afb7dc0 fileManager = (class NSFileManager *) 0xb5ae90 isDir = 0 '\000' #25 0x000000000057a0aa in main (argc=5, argv=0x7fff8afb82e8) at emacs.c:1467 dummy = 47627439642688 stack_bottom_variable = 0 '\000' do_initial_setlocale = 0 skip_args = 1 ---Type <return> to continue, or q <return> to quit--- rlim = { rlim_cur = 33554432, rlim_max = 18446744073709551615 } no_loadup = 0 junk = 0x0 ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2008-10-10 1:15 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-10-03 21:18 bug#1079: GNUstep port segfaults making autoloads on x86_64 Glenn Morris 2008-10-04 1:04 ` Adrian Robert 2008-10-05 1:40 ` Glenn Morris 2008-10-05 2:06 ` Adrian Robert 2008-10-06 9:39 ` Yavor Doganov 2008-10-06 17:20 ` Glenn Morris 2008-10-06 18:39 ` Glenn Morris 2008-10-07 19:02 ` Yavor Doganov 2008-10-08 7:51 ` Glenn Morris 2008-10-08 11:55 ` Yavor Doganov 2008-10-10 1:03 ` Glenn Morris 2008-10-10 1:15 ` Processed: " Emacs bug Tracking System 2008-10-06 11:32 ` Yavor Doganov 2008-10-06 17:24 ` Glenn Morris
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).