gnustep-dev
[Top][All Lists]
Advanced

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

Re: crash in NSPathUtilies / UserDefaults (from PikoPixel)


From: Riccardo Mottola
Subject: Re: crash in NSPathUtilies / UserDefaults (from PikoPixel)
Date: Fri, 23 Oct 2015 11:26:03 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 SeaMonkey/2.38

Hallo,

Fred Kiefer wrote:
Hi Riccardo,

if you look at the line NSProcessInfo.m:1015 you will find:

   _NSLog_printf_handler(_GNU_MISSING_MAIN_FUNCTION_CALL);

Now it is definitely a problem that this line leads to a recursion and
somebody with more base knowledge should look into that. Most liekly the

Interesting is that there is a comment that NSAssert that can't be used to avoid recursion.

I put a breakpoint exactly there (NSProcessInfo.m:1015), the stack is not yet corrupted. I copy it below.

As one can think,
(gdb) p _gnu_processName
$1 = (struct NSString *) 0x0
(gdb) p _gnu_arguments
$2 = (struct NSArray *) 0x0
(gdb) p _gnu_environment
$3 = (struct NSDictionary *) 0x0

they are all NULL, probably they shouldn't, since that is the assert, however again, we shouldn't get a crash in the print statement: two bugs in one. I think this is stuff in base.

Thanks to this we know that the PP trace is:
PPAppBootUtilities.m:42
PPGNUstepGlue_TitleablePopUpButton.m:70

It looks as there is an invalid selector and this causes a crash.

I commented out + (void) load of PPGNUstepGlue_TitleablePopUpButton.m

But again I get a stimilar recursive stacktrace where the UserName is invalid.

All other application seem to run quite fine, I did run base tests and it doesn't look so bad:
7992 Passed tests
  38 Dashed hopes
   6 Failed tests
   5 Skipped sets

Only 6 failures:
Failed test: RecursiveLock.m:36 ... NSRecursiveLock isLockedByCurrentThread returns NO when not locked Failed test: RecursiveLock.m:39 ... NSRecursiveLock isLockedByCurrentThread returns YES when not locked Failed test: RecursiveLock.m:42 ... NSRecursiveLock isLockedByCurrentThread returns NO when unlocked
Failed test:         basic10_4.m:111 ... format width set correctly
Failed test:         basic10_4.m:115 ... positive prefix set correctly
Failed test:         basic10_4.m:145 ... negativeFormat used for -ve number

and none seems to be related, although... well there should be none.

function GSPrivateDefaultsFlag() needs another safety hatch. But the
problem seems not to be related to PikoPixel directly. The only possible
connection that I see is that there user defaults get set from a +load
method (PPGNUstepGlue_ModifierKeys.m). You could comment out the code in
that +load method and see if this changes the behaviour for you.

Unfortunately, it doesn't help.

Riccardo


trace:
#0  +[NSProcessInfo processInfo] (self=0xbb70f080 <_OBJC_Class_NSProcessInfo>,
    _cmd=0xbb706b70 <_OBJC_SELECTOR_TABLE+400>) at NSProcessInfo.m:1015
#1  0xbb45f49d in InitialisePathUtilities () at NSPathUtilities.m:1154
#2  0xbb466d5b in GSDefaultsRootForUser (address@hidden)
    at NSPathUtilities.m:1883
#3  0xbb4efe3f in -[NSUserDefaults initWithUser:] (address@hidden,
    address@hidden <_OBJC_SELECTOR_TABLE+624>, userName=0xb8cf1830)
    at NSUserDefaults.m:1180
#4  0xbb4ef964 in -[NSUserDefaults init] (self=0xb8c61cd0,
    _cmd=0xbb731778 <_OBJC_SELECTOR_TABLE+408>) at NSUserDefaults.m:1094
#5  0xbb4f0369 in +[NSUserDefaults standardUserDefaults] (
    self=0xbb731a60 <_OBJC_Class_NSUserDefaults>,
    _cmd=0xbb731758 <_OBJC_SELECTOR_TABLE+376>) at NSUserDefaults.m:779
#6  0xbb4f2467 in GSPrivateDefaultsFlag (address@hidden)
    at NSUserDefaults.m:2116
#7  0xbb441447 in NSLogv (address@hidden <_OBJC_INSTANCE_2>,
    address@hidden "\260f\302\270\220\034\306\270\220\300\313\270$") at 
NSLog.m:354
#8  0xbb441957 in NSLog (address@hidden <_OBJC_INSTANCE_2>)
    at NSLog.m:297
#9  0xbb392004 in +[NSAutoreleasePool addObject:] (
    self=0xbb6cecc0 <_OBJC_Class_NSAutoreleasePool>,
    _cmd=0xbb703eb8 <_OBJC_SELECTOR_TABLE+120>, anObj=0xb8c266b0)
    at NSAutoreleasePool.m:538
#10 0xbb456e93 in -[NSObject autorelease] (self=0xb8c266b0,
    _cmd=0xbb6fcda0 <_OBJC_SELECTOR_TABLE+32>) at NSObject.m:1874
#11 0xbb44321f in +[NSMethodSignature signatureWithObjCTypes:] (
    self=0xbb6fce20 <_OBJC_Class_NSMethodSignature>,
    _cmd=0xbb743b40 <_OBJC_SELECTOR_TABLE>,
    t=0x818f799 <_OBJC_METH_VAR_TYPE_0> "address@hidden:4:8") at 
NSMethodSignature.m:559
#12 0xbb5240fd in gs_objc_msg_forward2 (
    receiver=0xbb704060 <_OBJC_Class_NSObject>,
    sel=0x81901b8 <_OBJC_SELECTOR_TABLE+824>) at GSFFIInvocation.m:163
#13 0xbb2958d1 in __objc_get_forward_imp () from /usr/lib/libobjc.so.4
#14 0xbb2970d2 in objc_msg_lookup () from /usr/lib/libobjc.so.4
#15 0x080bdcfc in PPAppBootUtils_PerformNSObjectSelectorAfterAppLoads (
    address@hidden <_OBJC_SELECTOR_TABLE+936>)
    at PPAppBootUtilities.m:42
#16 0x080cc87f in +[NSObject(PPGNUstepGlue) TitleablePopUpButton_load] (
    self=0xbb704060 <_OBJC_Class_NSObject>, _cmd=0xb8c156d0)
    at PPGNUstepGlue_TitleablePopUpButton.m:70
#17 0xbb29a279 in ?? () from /usr/lib/libobjc.so.4
#18 0xbb29a622 in ?? () from /usr/lib/libobjc.so.4
#19 0xbb29b073 in __objc_exec_class () from /usr/lib/libobjc.so.4
#20 0x080ce3db in __objc_gnu_init ()
#21 0x080518d5 in ?? ()





reply via email to

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