[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
some debugging help needed
From: |
Sebastian Reitenbach |
Subject: |
some debugging help needed |
Date: |
Tue, 09 Feb 2010 22:20:57 +0100 |
User-agent: |
Thunderbird 2.0.0.22 (X11/20090701) |
Hi,
still trying to fix problems when running OGo linked against
gnustep-base. Thanks to Richard
at the Fosdem, I now know how to track down segfaults/exceptions due to
multiple releases of an object
using the enableDoubleReleaseCheck and how to interpret the outcome.
.
That was already very helpful. However, I still have a problem, where it
seems an already deallocated
object is accessed.
In the OGo menu, I can enter any category, like contacts, calendar, ...
also the news. However, when
I leave the news, (whatever I click, also within the news page), I get
the following exception:
Feb 09 21:51:32 ogo-webui-5.5 [12774]: [WARN] LSWImapMails could not
determine context object!
Feb 09 21:51:32 ogo-webui-5.5 [12774]: [WARN] LSWImapMails missing
session for component!
Feb 09 21:51:32 ogo-webui-5.5 [12774]: [WARN] LSWImapMails could not
determine context object!
Feb 09 21:51:32 ogo-webui-5.5 [12774]: [WARN] LSWImapMails missing
session for component!
^C[New process 12774]
^C
Program received signal SIGINT, Interrupt.
0x0d935bf5 in poll () from /usr/lib/libc.so.51.0
(gdb) break raise
[0] cancel
[1] all
[2] -[NSException raise] at NSException.m:831
[3] raise at /usr/src/lib/libc/gen/raise.c:37
> 2
Breakpoint 1 at 0x4aea46d: file NSException.m, line 831.
(gdb) c
Continuing.
Program received signal SIGSEGV, Segmentation fault.
[Switching to process 12774, thread 0x8a85f000]
0x02fd40f8 in objc_msg_lookup (receiver=0x88a3d808, op=0x28d804b0) at
sarray.h:230
230 sarray.h: No such file or directory.
in sarray.h
(gdb) bt
#0 0x02fd40f8 in objc_msg_lookup (receiver=0x88a3d808, op=0x28d804b0)
at sarray.h:230
#1 0x08d830e2 in -[WOApplication restoreSessionWithID:inContext:]
(self=0x842f6308, _cmd=0x28d92830, _sid=0x7c07ec28, _ctx=0x7e3a9008)
at WOApplication.m:588
#2 0x08dc0f51 in -[WORequestHandler handleRequest:] (self=0x8707ea48,
_cmd=0x28d81548, _request=0x7cb8bb88) at WORequestHandler.m:193
#3 0x08d87bd1 in -[WOCoreApplication dispatchRequest:usingHandler:]
(self=0x842f6308, _cmd=0x28d81580, _request=0x7cb8bb88, handler=0x8707ea48)
at WOCoreApplication.m:704
#4 0x08d87eb7 in -[WOCoreApplication dispatchRequest:]
(self=0x842f6308, _cmd=0x3c0060c8, _request=0x7cb8bb88) at
WOCoreApplication.m:734
#5 0x1c00676f in -[OpenGroupware dispatchRequest:] (self=0x842f6308,
_cmd=0x28db1510, _request=0x7cb8bb88) at OpenGroupware.m:829
#6 0x08e1b32e in -[WOHttpTransaction _run] (self=0x7c987c08,
_cmd=0x28db1528) at WOHttpTransaction.m:546
#7 0x08e1b4b9 in -[WOHttpTransaction run] (self=0x7c987c08,
_cmd=0x28db0888) at WOHttpTransaction.m:599
#8 0x08e179e8 in -[WOHttpAdaptor runConnection:] (self=0x836a3dc8,
_cmd=0x28db08d8, _socket=0x7c39f0c8) at WOHttpAdaptor.m:403
#9 0x08e17bde in -[WOHttpAdaptor _handleAcceptedConnection:]
(self=0x836a3dc8, _cmd=0x28db08e0, _connection=0x7c39f0c8) at
WOHttpAdaptor.m:437
#10 0x08e182ee in -[WOHttpAdaptor _handleConnection:] (self=0x836a3dc8,
_cmd=0x28db0968, connection=0x7c39f0c8) at WOHttpAdaptor.m:548
#11 0x08e185c3 in -[WOHttpAdaptor acceptConnection:] (self=0x836a3dc8,
_cmd=0x28db0868, _notification=0x7c2895e8) at WOHttpAdaptor.m:604
#12 0x04b1e0b0 in -[NSNotificationCenter _postAndRelease:]
(self=0x82eb6ca8, _cmd=0x24b1b0a8, notification=0x7c2895e8) at
NSNotificationCenter.m:1070
#13 0x04b1e577 in -[NSNotificationCenter
postNotificationName:object:userInfo:] (self=0x82eb6ca8,
_cmd=0x24b1b0b0, name=0x23fbea84,
object=0x836a3a48, info=0x0) at NSNotificationCenter.m:1129
#14 0x04b1e4a4 in -[NSNotificationCenter postNotificationName:object:]
(self=0x82eb6ca8, _cmd=0x23fc0f88, name=0x23fbea84, object=0x836a3a48)
at NSNotificationCenter.m:1109
#15 0x03fda031 in -[NSObject(FileObjectWatcher)
receivedEvent:type:extra:forMode:] (self=0x836a3a48, _cmd=0x24b4a2b8,
_fdData=0xa, _type=ET_RDESC,
_extra=0xa, _mode=0x24b251bc) at NSRunLoop+FileObjects.m:57
#16 0x04bf39d6 in -[GSRunLoopCtxt pollUntil:within:] (self=0x819b4608,
_cmd=0x24b250b0, milliseconds=29991, contexts=0x843d2fe8)
at GSRunLoopCtxt.m:598
#17 0x04b5db5e in -[NSRunLoop acceptInputForMode:beforeDate:]
(self=0x843d2f28, _cmd=0x24b250d8, mode=0x24b251bc, limit_date=0x7c2893c8)
at NSRunLoop.m:1174
#18 0x04b5df80 in -[NSRunLoop runMode:beforeDate:] (self=0x843d2f28,
_cmd=0x28d814b8, mode=0x24b251bc, date=0x7c067248) at NSRunLoop.m:1249
#19 0x08d875de in -[WOCoreApplication run] (self=0x842f6308,
_cmd=0x28d8c8f0) at WOCoreApplication.m:576
#20 0x08dadbf2 in WOApplicationMain (_appClassName=0x3c005654, argc=7,
argv=0xcfbf8430) at WOApplicationMain.m:42
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) frame 1
#1 0x08d830e2 in -[WOApplication restoreSessionWithID:inContext:]
(self=0x842f6308, _cmd=0x28d92830, _sid=0x7c07ec28, _ctx=0x7e3a9008)
at WOApplication.m:588
588 if ([session isNotNull]) {
Current language: auto; currently objective-c
(gdb) list
583 if ((store = [self sessionStore]) == nil) {
584 [self errorWithFormat:@"missing session store ..."];
585 }
586 else {
587 session = [store restoreSessionWithID:_sid request:[_ctx
request]];
588 if ([session isNotNull]) {
589 [_ctx setSession:session];
590 [session _awakeWithContext:_ctx];
591 }
592 else {
(gdb) print *session
$1 = {isa = 0xdeadface, wosLanguages = 0x83ffca08, isTerminating = 0
'\000', wosLock = 0x0, wosSessionId = 0x7c289f08, wosVariables =
0x89ceeb88,
wosTimeOut = 3600, wosDefaultEditingContext = 0x0, wosFlags =
{storesIDsInURLs = 1 '\001', storesIDsInCookies = 1 '\001', isAwake = 0
'\000'},
pageCache = {entries = 0x7c291800, index = 0, size = 30},
permanentPageCache = {entries = 0x7c291200, index = 0, size = 30},
application = 0x0,
context = 0x0}
(gdb)
after some more research, I figured out that the isa = 0xdeadface points
to an already deallocated object. After some more debugging, I figured out,
the deallocated object is a OGoSession. Therefore I put a breakpoint to
-[OGoSession dealloc] in order to figure out where it is dellocated.
Restarting OGo, and then entering the News menu, the program stops at
that breakpoint:
127.0.0.1 - - [09/Feb/2010:21:59:41 GMT] "POST
/OpenGroupware.woa/x/login?da=&o=1265749110 HTTP/1.1" 200 5735/122
64.461 37988 84% -
127.0.0.1 - - [09/Feb/2010:21:59:47 GMT] "GET
/OpenGroupware.woa/x/dock?woinst=8294&wosid=20662066014B71CC7F&cid=0044b71cc7d7fbd1808&page=SkyNews
HTTP/1.1" 200 5007/0 0.996 38067 86% -
[Switching to process 8294, thread 0x8aff6c00]
Breakpoint 1, -[OGoSession dealloc] (self=0x8b602c08, _cmd=0x212b88c0)
at OGoSession.m:328
328 [[NSNotificationCenter defaultCenter]
Current language: auto; currently objective-c
(gdb) bt
#0 -[OGoSession dealloc] (self=0x8b602c08, _cmd=0x212b88c0) at
OGoSession.m:328
#1 0x012c4b0a in -[NSObject release] (self=0x8b602c08, _cmd=0x2129ff70)
at NSObject.m:2036
#2 0x0123c62f in -[NSAutoreleasePool emptyPool] (self=0x80a30bc8,
_cmd=0x2129ffd0) at NSAutoreleasePool.m:427
#3 0x0123c484 in -[NSAutoreleasePool dealloc] (self=0x80a30bc8,
_cmd=0x2129ffc8) at NSAutoreleasePool.m:329
#4 0x0123c43f in -[NSAutoreleasePool release] (self=0x80a30bc8,
_cmd=0x212bffa8) at NSAutoreleasePool.m:322
#5 0x012f8c13 in -[NSRunLoop acceptInputForMode:beforeDate:]
(self=0x7fbd0e88, _cmd=0x212c00d8, mode=0x212c01bc, limit_date=0x7f077aa8)
at NSRunLoop.m:1200
#6 0x012f8f80 in -[NSRunLoop runMode:beforeDate:] (self=0x7fbd0e88,
_cmd=0x226464b8, mode=0x212c01bc, date=0x7f077aa8) at NSRunLoop.m:1249
#7 0x0264c5de in -[WOCoreApplication run] (self=0x845e7a08,
_cmd=0x226518f0) at WOCoreApplication.m:576
#8 0x02672bf2 in WOApplicationMain (_appClassName=0x3c005654, argc=7,
argv=0xcfbc2410) at WOApplicationMain.m:42
#9 0x0268f8cf in WOWatchDogApplicationMain (appName=0x3c005654, argc=7,
argv=0xcfbc2410) at WOWatchDogApplicationMain.m:1017
#10 0x1c001db0 in gnustep_base_user_main (argc=7, argv=0xcfbc2410,
env=0xcfbc2430) at main.m:33
#11 0x012e78b0 in main (argc=7, argv=0xcfbc2410, env=0xcfbc2430) at
NSProcessInfo.m:921
#12 0x1c001c0c in ___start ()
#13 0x1c001b5f in _start ()
#14 0x00000000 in ?? ()
The first part in the backtrace where sth. is released is in
NSRunLoop.m, frame 5:
(gdb) frame 5
#5 0x012f8c13 in -[NSRunLoop acceptInputForMode:beforeDate:]
(self=0x7fbd0e88, _cmd=0x212c00d8, mode=0x212c01bc, limit_date=0x7f077aa8)
at NSRunLoop.m:1200
1200 RELEASE(arp);
(gdb) list
1195 [context endPoll];
1196 [_contextStack removeObjectIdenticalTo: context];
1197 [localException raise];
1198 }
1199 NS_ENDHANDLER
1200 RELEASE(arp);
1201 }
1202
1203 /**
1204 * Calls -limitDateForMode: to determine if a timeout occurs
before the
But I guess there is probably not the problem ;)
I wonder how I could track down the release of the session? What could
cause calling [OGoSession dealloc] when
entering the News page in ogo, but not when I enter sth. else. Any hint
where to set a breakpoint or anything would be great.
Thanks
Sebastian
- some debugging help needed,
Sebastian Reitenbach <=