Hello,
I have an image (3.9, several additional packages loaded) that crashes as soon as I start it. It loads, then I see the World for maybe a second, and then, boom!, it's gone. Is there any possibility to see what code has been executed just before the crash to debug the problem? I do not get any debugger or any error msg that I could use to locate the problem. Do you have any hints? I heard of a VM that logs every msg send, it's described here, at the bottom: http://www.smalltalkconsulting.com/squeak.html This VM unfortunately doesn't work properly on my system, an Intel Mac. Any hints are highly appreciated. Cheers, David |
If this is on a macintosh there should be a crash log in ~/Library/
Logs/CrashReporter/Squeak... If so send me a copy. Also I'd be glad to work with you to build a more current VM with message tracing on. Also you can start the VM binary using gdb then run, then when it crashs type in call (int) printAllStacks() to get a stack trace of all the processes running On Apr 14, 2008, at 8:31 AM, David Röthlisberger wrote: > Hello, > > I have an image (3.9, several additional packages loaded) that > crashes as soon as I start it. It loads, then I see the World for > maybe a second, and then, boom!, it's gone. > Is there any possibility to see what code has been executed just > before the crash to debug the problem? I do not get any debugger or > any error msg that I could use to locate the problem. Do you have > any hints? > > I heard of a VM that logs every msg send, it's described here, at > the bottom: > http://www.smalltalkconsulting.com/squeak.html > This VM unfortunately doesn't work properly on my system, an Intel > Mac. > > Any hints are highly appreciated. > > Cheers, > David > -- = = = ======================================================================== John M. McIntosh <[hidden email]> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ======================================================================== |
Thanks to the help of John I found out that the image crashes when the method
CommandHistory class >> forgetAllGrabCommandsFrom: gets excuted. I have the impression that the method ProtoObject >> nextObject is failing. Does anybody know how this can happen and what can be done in that case? I know a scenario that I need to execute in my image so that the crash happens on start-up. When I save the image after I have executed this scenario, the image crashes on start-up for sure. Do you know what kind of code could cause this primitive in ProtoObject >> nextObject to fail? This scenario builds up a Mondrian graph, so Morphic is heavily used. The size of the graph doesn't matter though. David > If this is on a macintosh there should be a crash log in > ~/Library/Logs/CrashReporter/Squeak... > If so send me a copy. > > Also I'd be glad to work with you to build a more current VM with > message tracing on. > > Also you can start the VM binary using gdb then run, then when it crashs > type in call (int) printAllStacks() > to get a stack trace of all the processes running > > > On Apr 14, 2008, at 8:31 AM, David Röthlisberger wrote: > >> Hello, >> >> I have an image (3.9, several additional packages loaded) that crashes >> as soon as I start it. It loads, then I see the World for maybe a >> second, and then, boom!, it's gone. >> Is there any possibility to see what code has been executed just >> before the crash to debug the problem? I do not get any debugger or >> any error msg that I could use to locate the problem. Do you have any >> hints? >> >> I heard of a VM that logs every msg send, it's described here, at the >> bottom: >> http://www.smalltalkconsulting.com/squeak.html >> This VM unfortunately doesn't work properly on my system, an Intel Mac. >> >> Any hints are highly appreciated. >> >> Cheers, >> David >> > > -- > =========================================================================== > John M. McIntosh <[hidden email]> > Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com > =========================================================================== > > > |
Set the SqueakMaxHeapSize in the info.plist to a bigger number 1GB
versus 512MB and see if that makes a different. I noted the VM crashs in org.squeak.Squeak 0x000f4724 lookupMethodInClass + 84 but we'd need the stack back trace to understand where it was called from. On Apr 15, 2008, at 2:20 AM, David Röthlisberger wrote: > Thanks to the help of John I found out that the image crashes when > the method CommandHistory class >> forgetAllGrabCommandsFrom: gets > excuted. > I have the impression that the method ProtoObject >> nextObject is > failing. > Does anybody know how this can happen and what can be done in that > case? > > I know a scenario that I need to execute in my image so that the > crash happens on start-up. When I save the image after I have > executed this scenario, the image crashes on start-up for sure. Do > you know what kind of code could cause this primitive in ProtoObject > >> nextObject to fail? > > This scenario builds up a Mondrian graph, so Morphic is heavily > used. The size of the graph doesn't matter though. -- = = = ======================================================================== John M. McIntosh <[hidden email]> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ======================================================================== |
> Set the SqueakMaxHeapSize in the info.plist to a bigger number 1GB > versus 512MB and see if that makes a different. I did this, but no, the problem remains. > I noted the VM crashs in > org.squeak.Squeak 0x000f4724 lookupMethodInClass + 84 > > but we'd need the stack back trace to understand where it was called from. okay, I used gdb to get a stack trace when starting an image producing the crash: Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0xfb6004c4 0x000f4724 in lookupMethodInClass () (gdb) call (int) printAllStacks() warning: Unable to restore previously selected frame. warning: Unable to restore previously selected frame. Process 453606372 [] in >forgetAllGrabCommandsFrom: 453605940 BlockContext>on:do: 453605848 BlockContext>ifError: 453605664 >forgetAllGrabCommandsFrom: 453605388 >resetAllHistory 453604560 >startUp: 445250644 [] in SystemDictionary>send:toClassesNamedIn:with: 445250420 OrderedCollection>do: 445250328 SystemDictionary>send:toClassesNamedIn:with: 445250236 SystemDictionary>processStartUpList: 445232196 SmalltalkImage>snapshot:andQuit:embedded: 445232104 SmalltalkImage>snapshot:andQuit: 445232012 SmalltalkImage>saveSession 445231828 TheWorldMenu>doMenuItem:with: 445231736 [] in MenuItemMorph>invokeWithEvent: 445231644 BlockContext>ensure: 445231552 Cursor>showWhile: 445231416 MenuItemMorph>invokeWithEvent: 445231324 MenuItemMorph>mouseUp: 445231232 MenuItemMorph>handleMouseUp: 445231100 MouseButtonEvent>sentTo: 445231008 Morph>handleEvent: 445230916 MorphicEventDispatcher>dispatchDefault:with: 445230824 MorphicEventDispatcher>dispatchEvent:with: 445230732 Morph>processEvent:using: 445230640 MorphicEventDispatcher>dispatchDefault:with: 445230532 MorphicEventDispatcher>dispatchEvent:with: 445230400 Morph>processEvent:using: 445230308 Morph>processEvent: 445230216 MenuMorph>handleFocusEvent: 445229940 [] in HandMorph>sendFocusEvent:to:clear: 445230032 [] in PasteUpMorph>becomeActiveDuring: 445229848 BlockContext>on:do: 445229756 PasteUpMorph>becomeActiveDuring: 445229572 HandMorph>sendFocusEvent:to:clear: 445229480 HandMorph>sendEvent:focus:clear: 445229388 HandMorph>sendMouseEvent: 445229244 HandMorph>handleEvent: 445228988 HandMorph>processEvents 445229080 [] in WorldState>doOneCycleNowFor: 445228896 SequenceableCollection>do: 445228804 WorldState>handsDo: 445228712 WorldState>doOneCycleNowFor: 445228620 WorldState>doOneCycleFor: 445228528 PasteUpMorph>doOneCycle 441031360 [] in >spawnNewProcess 441031452 [] in BlockContext>newProcess Process 453585108 >finalizationProcess 453584832 [] in >restartFinalizationProcess 453584924 [] in BlockContext>newProcess Process 307823020 >? 307823360 [] in >? 307823452 [] in BlockContext>? Process 453500076 InputSensor>userInterruptWatcher 453499892 [] in InputSensor>installInterruptWatcher 453499984 [] in BlockContext>newProcess Process 453714748 Delay>wait 453714840 [] in EventSensor>eventTickler 453714656 BlockContext>on:do: 453500572 EventSensor>eventTickler 453500296 [] in EventSensor>installEventTickler 453500480 [] in BlockContext>newProcess Process 453501020 SystemDictionary>lowSpaceWatcher 453501112 [] in SystemDictionary>installLowSpaceWatcher 453501204 [] in BlockContext>newProcess warning: Unable to restore previously selected frame. $1 = 2 Does this shed some light on it? To me this means that one or more objects are corruptly saved in memory and on start-up the last executed method (#forgetAllGrabCommandsFrom:) tries to access all objects in the image, which leads to the crash. The question is now what caused those objects to get saved in a corrupt manner? David > On Apr 15, 2008, at 2:20 AM, David Röthlisberger wrote: > >> Thanks to the help of John I found out that the image crashes when the >> method CommandHistory class >> forgetAllGrabCommandsFrom: gets excuted. >> I have the impression that the method ProtoObject >> nextObject is >> failing. >> Does anybody know how this can happen and what can be done in that case? >> >> I know a scenario that I need to execute in my image so that the crash >> happens on start-up. When I save the image after I have executed this >> scenario, the image crashes on start-up for sure. Do you know what >> kind of code could cause this primitive in ProtoObject >> nextObject >> to fail? >> >> This scenario builds up a Mondrian graph, so Morphic is heavily used. >> The size of the graph doesn't matter though. > |
Free forum by Nabble | Edit this page |