unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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-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  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 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

* 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

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).