Hi,
I've had several occurrences of a crash of my deployed app leaving a massive (~200Mb) .ERRORS file that has some kind of dodgy data in it. When trying to open the file, it seems to have multiple start-of-file and end-of-file characters in it, as the reader thinks it is at the start/end throughout the file. This is DX6, the same app has never done this in D5. The app seems to be crashing on a divide-by-zero error, with some strange references of a bad array [00000000]. Trying to figure out what's going on I got the suspicion it is in the message forwarding. I've overridden #doesNotUnderstand: to forward messages of a wrapper to the wrapped object. Now the bad array gets created when the message (which doesn't have any arguments) gets sent around. As the Array has seen changes in DX6 to support immutable arrays, I can imagine the Message class>>selector: message might be causing the problem, as that creates an immutable array for the arguments. See enclosed for an extract of the error log (most of this is repeated umpteen times). Can anybody shed some light on this? Thanks, Ted ************************** Dolphin Virtual Machine Dump Report *************************** 16:42:04, 25/02/2006: Division by zero of 0.0 *----> VM Context <----* Process: {0B280004:size 304 words, suspended frame 0B280425, priority 3, callbacks 0 last failure 0:nil, FPE mask 3, thread nil} Active Method: SessionManager>>logError: IP: 0985B0F9 (9) SP: 0B2805A4 BP: 0B280578 (334) ActiveFrame: {0B28057C: cf 0B28055D, sp 0B280594, bp 0B280578, ip 5, MyAppSessionManager(SessionManager)>>logError:} receiver: a MyAppSessionManager arg[0]: a ZeroDivide New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth: Message Selector: dump:path:stackDepth:walkbackDepth: *----> Stack Back Trace <----* {0B28057C: cf 0B28055D, sp 0B280594, bp 0B280578, ip 5, MyAppSessionManager(SessionManager)>>logError:} receiver: a MyAppSessionManager arg[0]: a ZeroDivide {0B28055C: cf 0B28053D, sp 0B280570, bp 0B280558, ip 3, MyAppSessionManager(SessionManager)>>unhandledException:} receiver: a MyAppSessionManager arg[0]: a ZeroDivide {0B28053C: cf 0B28051D, sp 0B280550, bp 0B280538, ip 3, MyAppSessionManager(SessionManager)>>onUnhandledError:} receiver: a MyAppSessionManager arg[0]: a ZeroDivide {0B28051C: cf 0B280501, sp 0B280530, bp 0B28051C, ip 5, ZeroDivide(Error)>>defaultAction} receiver: a ZeroDivide {0B280500: cf 0B2804CD, sp 0B280514, bp 0B2804E8, ip 55, ZeroDivide(Exception)>>_propagateFrom:} receiver: a ZeroDivide arg[0]: a ExceptionHandler stack temp[0]: nil stack temp[1]: a ExceptionHandler stack temp[2]: nil stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) stack temp[4]: nil {0B2804CC: cf 0B2804AD, sp 0B2804E0, bp 0B2804C8, ip 6, ZeroDivide(Exception)>>_propagate} receiver: a ZeroDivide stack temp[0]: nil {0B2804AC: cf 0B280491, sp 0B2804C0, bp 0B2804AC, ip 11, ZeroDivide(Exception)>>signal} receiver: a ZeroDivide {0B280490: cf 0B28046D, sp 0B2804A4, bp 0B280488, ip 8, ZeroDivide(Exception)>>signal:with:} receiver: a ZeroDivide arg[0]: nil arg[1]: 0 {0B28046C: cf 0B280449, sp 0B280480, bp 0B280464, ip 6, ZeroDivide class(Exception class)>>signal:with:} receiver: ZeroDivide arg[0]: nil arg[1]: 0 {0B280448: cf 0B280429, sp 0B28045C, bp 0B280444, ip 5, ZeroDivide class(Exception class)>>signalWith:} receiver: ZeroDivide arg[0]: 0 {0B280428: cf 0B280409, sp 0B28043C, bp 0B280424, ip 3, ZeroDivide class>>dividend:} receiver: ZeroDivide arg[0]: 0 {0B280408: cf 0B2803E5, sp 0B28041C, bp 0B280400, ip 14, ProcessorScheduler>>fpException:} receiver: a ProcessorScheduler arg[0]: a ByteArray stack temp[0]: a _FPIEEE_RECORD {0B2803E4: cf 0B2803B9, sp 0B2803F8, bp 0B2803DC, ip 16, [] in ProcessorScheduler>>vmi:list:no:with:} receiver: a ProcessorScheduler {0B2803B8: cf 0B280399, sp 0B2803CC, bp 0B2803B4, ip 18, BlockClosure>>ifCurtailed:} receiver: [] @ 0 in nil arg[0]: [] @ 24 in ProcessorScheduler>>vmi:list:no:with: {0B280398: cf 0B28036D, sp 0B2803AC, bp 0B280388, ip 27, ProcessorScheduler>>vmi:list:no:with:} receiver: a ProcessorScheduler arg[0]: 872 arg[1]: nil arg[2]: 10 arg[3]: a ByteArray {0B28036C: cf 0B28034D, sp 0B280380, bp 0B280368, ip 0, Float(ArithmeticValue)>>divideIntoFloat:} receiver: 0 arg[0]: 0 {0B28034C: cf 0B28032D, sp 0B280360, bp 0B280348, ip 4, Float>>/} receiver: 0 arg[0]: 0 {0B28032C: cf 0B2802F5, sp 0B280340, bp 0B280318, ip 49, [] in HRTeamSetCalc>>calculateSecondSetChance} receiver: a HRTeamSetCalc arg[0]: a HRPlayerSetCalc stack temp[0]: a HRPlayerSetCalc {0B2802F4: cf 0B2802D1, sp 0B280310, bp 0B2802EC, ip 11, OrderedCollection>>do:} receiver: a OrderedCollection arg[0]: [] @ 32 in HRTeamSetCalc>>calculateSecondSetChance stack temp[0]: 2 {0B2802D0: cf 0B2802A1, sp 0B2802E4, bp 0B2802C4, ip 77, [] in HRTeamSetCalc>>calculateSecondSetChance} receiver: a HRTeamSetCalc arg[0]: a HRPlayerSetCalc {0B2802A0: cf 0B28027D, sp 0B2802BC, bp 0B280298, ip 11, OrderedCollection>>do:} receiver: a OrderedCollection arg[0]: [] @ 21 in HRTeamSetCalc>>calculateSecondSetChance stack temp[0]: 1 {0B28027C: cf 0B280259, sp 0B280290, bp 0B280274, ip 79, HRTeamSetCalc>>calculateSecondSetChance} receiver: a HRTeamSetCalc stack temp[0]: true stack temp[1]: 0.1 {0B280258: cf 0B280235, sp 0B28026C, bp 0B280250, ip 50, HRTeamSetCalc>>calculateFirstSetChance} receiver: a HRTeamSetCalc stack temp[0]: false stack temp[1]: 0.1 {0B280234: cf 0B280219, sp 0B280248, bp 0B280234, ip 62, HRTeamSetCalc>>calculateSetValue} receiver: a HRTeamSetCalc {0B280218: cf 0B2801F1, sp 0B28022C, bp 0B280214, ip 6, [] in HRMeetingSetCalc>>setAll} receiver: nil arg[0]: a HRTeamSetCalc {0B2801F0: cf 0B2801CD, sp 0B28020C, bp 0B2801E8, ip 11, OrderedCollection>>do:} receiver: a OrderedCollection arg[0]: [] @ 4 in HRMeetingSetCalc>>setAll stack temp[0]: 5 {0B2801CC: cf 0B2801B1, sp 0B2801E0, bp 0B2801CC, ip 8, HRMeetingSetCalc>>setAll} receiver: a HRMeetingSetCalc {0B2801B0: cf 0B280195, sp 0B2801C4, bp 0B2801B0, ip 2, HRMeetingSetCalc>>recalcSetValues} receiver: a HRMeetingSetCalc {0B280194: cf 0B280175, sp 0B2801A8, bp 0B280190, ip 5, Message>>forwardTo:} receiver: Message selector: recalcSetValues arguments: ***Bad Array: 00000000 arg[0]: a HRMeetingSetCalc {0B280174: cf 0B280155, sp 0B280188, bp 0B280170, ip 4, HRMyMeeting(HRMeetingStrat)>>doesNotUnderstand:} receiver: a HRMyMeeting arg[0]: Message selector: recalcSetValues arguments: ***Bad Array: 00000000 {0B280154: cf 0B280139, sp 0B280168, bp 0B280154, ip 16, HRMtgDashboardModel>>refresh} receiver: a HRMtgDashboardModel {0B280138: cf 0B28011D, sp 0B28014C, bp 0B280138, ip 15, [] in HRScheduleItem>>execute} receiver: a HRScheduleItem {0B28011C: cf 0B280101, sp 0B280130, bp 0B28011C, ip 13, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} receiver: a ExceptionHandler {0B280100: cf 0B2800D9, sp 0B280114, bp 0B2800FC, ip 22, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} receiver: a ExceptionHandler {0B2800D8: cf 0B2800B9, sp 0B2800EC, bp 0B2800D4, ip 18, BlockClosure>>ifCurtailed:} receiver: [] @ 0 in nil arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: {0B2800B8: cf 0B280095, sp 0B2800CC, bp 0B2800B0, ip 3, BlockClosure>>ensure:} receiver: [] @ 17 in ExceptionHandlerAbstract>>try: arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: stack temp[0]: nil {0B280094: cf 0B28006D, sp 0B2800A8, bp 0B280088, ip 44, ExceptionHandler(ExceptionHandlerAbstract)>>try:} receiver: a ExceptionHandler arg[0]: [] @ 12 in HRScheduleItem>>execute stack temp[0]: nil stack temp[1]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) env temp[0]: nil {0B28006C: cf 0B280049, sp 0B280080, bp 0B280064, ip 7, BlockClosure>>on:do:} receiver: [] @ 12 in HRScheduleItem>>execute arg[0]: ProcessTermination arg[1]: [] @ 13 in BlockClosure>>newProcess {0B280048: cf 00000001, sp 0B28005C, bp 0B280048, ip 17, [] in BlockClosure>>newProcess} receiver: [] @ 12 in HRScheduleItem>>execute <Bottom of stack> ***** End of dump ***** ************************** Dolphin Virtual Machine Dump Report *************************** 16:42:04, 25/02/2006: UndefinedObject does not understand #asInteger *----> VM Context <----* Process: {0B280004:size 435 words, suspended frame 0B280425, priority 3, callbacks 0 last failure 2:nil, FPE mask 3, thread nil} Active Method: SessionManager>>logError: IP: 0985B0F9 (9) SP: 0B2807B0 BP: 0B280784 (465) ActiveFrame: {0B280788: cf 0B280769, sp 0B2807A0, bp 0B280784, ip 5, MyAppSessionManager(SessionManager)>>logError:} receiver: a MyAppSessionManager arg[0]: a MessageNotUnderstood New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth: Message Selector: dump:path:stackDepth:walkbackDepth: *----> Stack Back Trace <----* {0B280788: cf 0B280769, sp 0B2807A0, bp 0B280784, ip 5, MyAppSessionManager(SessionManager)>>logError:} receiver: a MyAppSessionManager arg[0]: a MessageNotUnderstood {0B280768: cf 0B280749, sp 0B28077C, bp 0B280764, ip 3, MyAppSessionManager(SessionManager)>>unhandledException:} receiver: a MyAppSessionManager arg[0]: a MessageNotUnderstood {0B280748: cf 0B280729, sp 0B28075C, bp 0B280744, ip 3, MyAppSessionManager(SessionManager)>>onUnhandledError:} receiver: a MyAppSessionManager arg[0]: a MessageNotUnderstood {0B280728: cf 0B28070D, sp 0B28073C, bp 0B280728, ip 5, MessageNotUnderstood(Error)>>defaultAction} receiver: a MessageNotUnderstood {0B28070C: cf 0B2806D9, sp 0B280720, bp 0B2806F4, ip 55, MessageNotUnderstood(Exception)>>_propagateFrom:} receiver: a MessageNotUnderstood arg[0]: a ExceptionHandler stack temp[0]: nil stack temp[1]: a ExceptionHandler stack temp[2]: nil stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) stack temp[4]: nil {0B2806D8: cf 0B2806B9, sp 0B2806EC, bp 0B2806D4, ip 6, MessageNotUnderstood(Exception)>>_propagate} receiver: a MessageNotUnderstood stack temp[0]: nil {0B2806B8: cf 0B28069D, sp 0B2806CC, bp 0B2806B8, ip 11, MessageNotUnderstood(Exception)>>signal} receiver: a MessageNotUnderstood {0B28069C: cf 0B280679, sp 0B2806B0, bp 0B280694, ip 12, MessageNotUnderstood class>>receiver:message:} receiver: MessageNotUnderstood arg[0]: nil arg[1]: Message selector: asInteger arguments: ***Bad Array: 00000000 {0B280678: cf 0B280659, sp 0B28068C, bp 0B280674, ip 4, Object>>doesNotUnderstand:} receiver: nil arg[0]: Message selector: asInteger arguments: ***Bad Array: 00000000 {0B280658: cf 0B280631, sp 0B28066C, bp 0B28064C, ip 10, ByteArray>>retryDwordAtOffset:put:} receiver: a ByteArray arg[0]: 4 arg[1]: nil stack temp[0]: nil {0B280630: cf 0B28060D, sp 0B280644, bp 0B280628, ip 4, ByteArray>>dwordAtOffset:put:} receiver: a ByteArray arg[0]: 4 arg[1]: nil {0B28060C: cf 0B2805ED, sp 0B280620, bp 0B280608, ip 6, MSGBOXPARAMS>>hwndOwner:} receiver: a MSGBOXPARAMS arg[0]: nil {0B2805EC: cf 0B28059D, sp 0B280600, bp 0B2805B8, ip 73, UserLibrary>>messageBox:text:caption:style:icon:instance:} receiver: a UserLibrary arg[0]: nil arg[1]: ''Division by zero of 0.0'' arg[2]: ''MP59Alpha5'' arg[3]: 16 arg[4]: nil arg[5]: nil stack temp[0]: nil stack temp[1]: a MSGBOXPARAMS stack temp[2]: nil stack temp[3]: nil stack temp[4]: nil stack temp[5]: false stack temp[6]: nil {0B28059C: cf 0B280579, sp 0B2805B0, bp 0B280594, ip 20, ZeroDivide(Exception)>>showMessage:style:} receiver: a ZeroDivide arg[0]: ''Division by zero of 0.0'' arg[1]: 16 {0B280578: cf 0B28055D, sp 0B28058C, bp 0B280578, ip 11, ZeroDivide(Exception)>>okToContinue} receiver: a ZeroDivide {0B28055C: cf 0B28053D, sp 0B280570, bp 0B280558, ip 6, MyAppSessionManager(SessionManager)>>unhandledException:} receiver: a MyAppSessionManager arg[0]: a ZeroDivide {0B28053C: cf 0B28051D, sp 0B280550, bp 0B280538, ip 3, MyAppSessionManager(SessionManager)>>onUnhandledError:} receiver: a MyAppSessionManager arg[0]: a ZeroDivide {0B28051C: cf 0B280501, sp 0B280530, bp 0B28051C, ip 5, ZeroDivide(Error)>>defaultAction} receiver: a ZeroDivide {0B280500: cf 0B2804CD, sp 0B280514, bp 0B2804E8, ip 55, ZeroDivide(Exception)>>_propagateFrom:} receiver: a ZeroDivide arg[0]: a ExceptionHandler stack temp[0]: nil stack temp[1]: a ExceptionHandler stack temp[2]: nil stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) stack temp[4]: nil {0B2804CC: cf 0B2804AD, sp 0B2804E0, bp 0B2804C8, ip 6, ZeroDivide(Exception)>>_propagate} receiver: a ZeroDivide stack temp[0]: nil {0B2804AC: cf 0B280491, sp 0B2804C0, bp 0B2804AC, ip 11, ZeroDivide(Exception)>>signal} receiver: a ZeroDivide {0B280490: cf 0B28046D, sp 0B2804A4, bp 0B280488, ip 8, ZeroDivide(Exception)>>signal:with:} receiver: a ZeroDivide arg[0]: nil arg[1]: 0 {0B28046C: cf 0B280449, sp 0B280480, bp 0B280464, ip 6, ZeroDivide class(Exception class)>>signal:with:} receiver: ZeroDivide arg[0]: nil arg[1]: 0 {0B280448: cf 0B280429, sp 0B28045C, bp 0B280444, ip 5, ZeroDivide class(Exception class)>>signalWith:} receiver: ZeroDivide arg[0]: 0 {0B280428: cf 0B280409, sp 0B28043C, bp 0B280424, ip 3, ZeroDivide class>>dividend:} receiver: ZeroDivide arg[0]: 0 {0B280408: cf 0B2803E5, sp 0B28041C, bp 0B280400, ip 14, ProcessorScheduler>>fpException:} receiver: a ProcessorScheduler arg[0]: a ByteArray stack temp[0]: a _FPIEEE_RECORD {0B2803E4: cf 0B2803B9, sp 0B2803F8, bp 0B2803DC, ip 16, [] in ProcessorScheduler>>vmi:list:no:with:} receiver: a ProcessorScheduler {0B2803B8: cf 0B280399, sp 0B2803CC, bp 0B2803B4, ip 18, BlockClosure>>ifCurtailed:} receiver: [] @ 0 in nil arg[0]: [] @ 24 in ProcessorScheduler>>vmi:list:no:with: {0B280398: cf 0B28036D, sp 0B2803AC, bp 0B280388, ip 27, ProcessorScheduler>>vmi:list:no:with:} receiver: a ProcessorScheduler arg[0]: 872 arg[1]: nil arg[2]: 10 arg[3]: a ByteArray {0B28036C: cf 0B28034D, sp 0B280380, bp 0B280368, ip 0, Float(ArithmeticValue)>>divideIntoFloat:} receiver: 0 arg[0]: 0 {0B28034C: cf 0B28032D, sp 0B280360, bp 0B280348, ip 4, Float>>/} receiver: 0 arg[0]: 0 {0B28032C: cf 0B2802F5, sp 0B280340, bp 0B280318, ip 49, [] in HRTeamSetCalc>>calculateSecondSetChance} receiver: a HRTeamSetCalc arg[0]: a HRPlayerSetCalc stack temp[0]: a HRPlayerSetCalc {0B2802F4: cf 0B2802D1, sp 0B280310, bp 0B2802EC, ip 11, OrderedCollection>>do:} receiver: a OrderedCollection arg[0]: [] @ 32 in HRTeamSetCalc>>calculateSecondSetChance stack temp[0]: 2 {0B2802D0: cf 0B2802A1, sp 0B2802E4, bp 0B2802C4, ip 77, [] in HRTeamSetCalc>>calculateSecondSetChance} receiver: a HRTeamSetCalc arg[0]: a HRPlayerSetCalc {0B2802A0: cf 0B28027D, sp 0B2802BC, bp 0B280298, ip 11, OrderedCollection>>do:} receiver: a OrderedCollection arg[0]: [] @ 21 in HRTeamSetCalc>>calculateSecondSetChance stack temp[0]: 1 {0B28027C: cf 0B280259, sp 0B280290, bp 0B280274, ip 79, HRTeamSetCalc>>calculateSecondSetChance} receiver: a HRTeamSetCalc stack temp[0]: true stack temp[1]: 0.1 {0B280258: cf 0B280235, sp 0B28026C, bp 0B280250, ip 50, HRTeamSetCalc>>calculateFirstSetChance} receiver: a HRTeamSetCalc stack temp[0]: false stack temp[1]: 0.1 {0B280234: cf 0B280219, sp 0B280248, bp 0B280234, ip 62, HRTeamSetCalc>>calculateSetValue} receiver: a HRTeamSetCalc {0B280218: cf 0B2801F1, sp 0B28022C, bp 0B280214, ip 6, [] in HRMeetingSetCalc>>setAll} receiver: nil arg[0]: a HRTeamSetCalc {0B2801F0: cf 0B2801CD, sp 0B28020C, bp 0B2801E8, ip 11, OrderedCollection>>do:} receiver: a OrderedCollection arg[0]: [] @ 4 in HRMeetingSetCalc>>setAll stack temp[0]: 5 {0B2801CC: cf 0B2801B1, sp 0B2801E0, bp 0B2801CC, ip 8, HRMeetingSetCalc>>setAll} receiver: a HRMeetingSetCalc {0B2801B0: cf 0B280195, sp 0B2801C4, bp 0B2801B0, ip 2, HRMeetingSetCalc>>recalcSetValues} receiver: a HRMeetingSetCalc {0B280194: cf 0B280175, sp 0B2801A8, bp 0B280190, ip 5, Message>>forwardTo:} receiver: Message selector: recalcSetValues arguments: ***Bad Array: 00000000 arg[0]: a HRMeetingSetCalc {0B280174: cf 0B280155, sp 0B280188, bp 0B280170, ip 4, HRMyMeeting(HRMeetingStrat)>>doesNotUnderstand:} receiver: a HRMyMeeting arg[0]: Message selector: recalcSetValues arguments: ***Bad Array: 00000000 {0B280154: cf 0B280139, sp 0B280168, bp 0B280154, ip 16, HRMtgDashboardModel>>refresh} receiver: a HRMtgDashboardModel {0B280138: cf 0B28011D, sp 0B28014C, bp 0B280138, ip 15, [] in HRScheduleItem>>execute} receiver: a HRScheduleItem {0B28011C: cf 0B280101, sp 0B280130, bp 0B28011C, ip 13, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} receiver: a ExceptionHandler {0B280100: cf 0B2800D9, sp 0B280114, bp 0B2800FC, ip 22, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} receiver: a ExceptionHandler {0B2800D8: cf 0B2800B9, sp 0B2800EC, bp 0B2800D4, ip 18, BlockClosure>>ifCurtailed:} receiver: [] @ 0 in nil arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: {0B2800B8: cf 0B280095, sp 0B2800CC, bp 0B2800B0, ip 3, BlockClosure>>ensure:} receiver: [] @ 17 in ExceptionHandlerAbstract>>try: arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: stack temp[0]: nil {0B280094: cf 0B28006D, sp 0B2800A8, bp 0B280088, ip 44, ExceptionHandler(ExceptionHandlerAbstract)>>try:} receiver: a ExceptionHandler arg[0]: [] @ 12 in HRScheduleItem>>execute stack temp[0]: nil stack temp[1]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) env temp[0]: nil {0B28006C: cf 0B280049, sp 0B280080, bp 0B280064, ip 7, BlockClosure>>on:do:} receiver: [] @ 12 in HRScheduleItem>>execute arg[0]: ProcessTermination arg[1]: [] @ 13 in BlockClosure>>newProcess {0B280048: cf 00000001, sp 0B28005C, bp 0B280048, ip 17, [] in BlockClosure>>newProcess} receiver: [] @ 12 in HRScheduleItem>>execute <Bottom of stack> ***** End of dump ***** |
I found a way to easily reproduce this. Just put a 'self halt' in your
app (with the #doesNotUnderstand: forwarding mechanism), deploy it and - hey presto. Something must have changed in this area as in D5 these issues never caused the app to crash so badly. Should I worry about the fact that the error file is massive and seems to have dodgy data in it? What about that bad array? Ted Ted wrote: > Hi, > > I've had several occurrences of a crash of my deployed app leaving a > massive (~200Mb) .ERRORS file that has some kind of dodgy data in it. > When trying to open the file, it seems to have multiple start-of-file > and end-of-file characters in it, as the reader thinks it is at the > start/end throughout the file. > > This is DX6, the same app has never done this in D5. > > The app seems to be crashing on a divide-by-zero error, with some > strange references of a bad array [00000000]. Trying to figure out > what's going on I got the suspicion it is in the message forwarding. > I've overridden #doesNotUnderstand: to forward messages of a wrapper to > the wrapped object. Now the bad array gets created when the message > (which doesn't have any arguments) gets sent around. As the Array has > seen changes in DX6 to support immutable arrays, I can imagine the > Message class>>selector: message might be causing the problem, as that > creates an immutable array for the arguments. > > See enclosed for an extract of the error log (most of this is repeated > umpteen times). > > Can anybody shed some light on this? > > Thanks, > > Ted > > > ------------------------------------------------------------------------ > > ************************** Dolphin Virtual Machine Dump Report *************************** > > 16:42:04, 25/02/2006: Division by zero of 0.0 > > *----> VM Context <----* > Process: {0B280004:size 304 words, suspended frame 0B280425, priority 3, callbacks 0 > last failure 0:nil, FPE mask 3, thread nil} > Active Method: SessionManager>>logError: > IP: 0985B0F9 (9) > SP: 0B2805A4 > BP: 0B280578 (334) > ActiveFrame: {0B28057C: cf 0B28055D, sp 0B280594, bp 0B280578, ip 5, MyAppSessionManager(SessionManager)>>logError:} > receiver: a MyAppSessionManager > arg[0]: a ZeroDivide > > > New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth: > Message Selector: dump:path:stackDepth:walkbackDepth: > > *----> Stack Back Trace <----* > {0B28057C: cf 0B28055D, sp 0B280594, bp 0B280578, ip 5, MyAppSessionManager(SessionManager)>>logError:} > receiver: a MyAppSessionManager > arg[0]: a ZeroDivide > > {0B28055C: cf 0B28053D, sp 0B280570, bp 0B280558, ip 3, MyAppSessionManager(SessionManager)>>unhandledException:} > receiver: a MyAppSessionManager > arg[0]: a ZeroDivide > > {0B28053C: cf 0B28051D, sp 0B280550, bp 0B280538, ip 3, MyAppSessionManager(SessionManager)>>onUnhandledError:} > receiver: a MyAppSessionManager > arg[0]: a ZeroDivide > > {0B28051C: cf 0B280501, sp 0B280530, bp 0B28051C, ip 5, ZeroDivide(Error)>>defaultAction} > receiver: a ZeroDivide > > {0B280500: cf 0B2804CD, sp 0B280514, bp 0B2804E8, ip 55, ZeroDivide(Exception)>>_propagateFrom:} > receiver: a ZeroDivide > arg[0]: a ExceptionHandler > stack temp[0]: nil > stack temp[1]: a ExceptionHandler > stack temp[2]: nil > stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) > stack temp[4]: nil > > {0B2804CC: cf 0B2804AD, sp 0B2804E0, bp 0B2804C8, ip 6, ZeroDivide(Exception)>>_propagate} > receiver: a ZeroDivide > stack temp[0]: nil > > {0B2804AC: cf 0B280491, sp 0B2804C0, bp 0B2804AC, ip 11, ZeroDivide(Exception)>>signal} > receiver: a ZeroDivide > > {0B280490: cf 0B28046D, sp 0B2804A4, bp 0B280488, ip 8, ZeroDivide(Exception)>>signal:with:} > receiver: a ZeroDivide > arg[0]: nil > arg[1]: 0 > > {0B28046C: cf 0B280449, sp 0B280480, bp 0B280464, ip 6, ZeroDivide class(Exception class)>>signal:with:} > receiver: ZeroDivide > arg[0]: nil > arg[1]: 0 > > {0B280448: cf 0B280429, sp 0B28045C, bp 0B280444, ip 5, ZeroDivide class(Exception class)>>signalWith:} > receiver: ZeroDivide > arg[0]: 0 > > {0B280428: cf 0B280409, sp 0B28043C, bp 0B280424, ip 3, ZeroDivide class>>dividend:} > receiver: ZeroDivide > arg[0]: 0 > > {0B280408: cf 0B2803E5, sp 0B28041C, bp 0B280400, ip 14, ProcessorScheduler>>fpException:} > receiver: a ProcessorScheduler > arg[0]: a ByteArray > stack temp[0]: a _FPIEEE_RECORD > > {0B2803E4: cf 0B2803B9, sp 0B2803F8, bp 0B2803DC, ip 16, [] in ProcessorScheduler>>vmi:list:no:with:} > receiver: a ProcessorScheduler > > {0B2803B8: cf 0B280399, sp 0B2803CC, bp 0B2803B4, ip 18, BlockClosure>>ifCurtailed:} > receiver: [] @ 0 in nil > arg[0]: [] @ 24 in ProcessorScheduler>>vmi:list:no:with: > > {0B280398: cf 0B28036D, sp 0B2803AC, bp 0B280388, ip 27, ProcessorScheduler>>vmi:list:no:with:} > receiver: a ProcessorScheduler > arg[0]: 872 > arg[1]: nil > arg[2]: 10 > arg[3]: a ByteArray > > {0B28036C: cf 0B28034D, sp 0B280380, bp 0B280368, ip 0, Float(ArithmeticValue)>>divideIntoFloat:} > receiver: 0 > arg[0]: 0 > > {0B28034C: cf 0B28032D, sp 0B280360, bp 0B280348, ip 4, Float>>/} > receiver: 0 > arg[0]: 0 > > {0B28032C: cf 0B2802F5, sp 0B280340, bp 0B280318, ip 49, [] in HRTeamSetCalc>>calculateSecondSetChance} > receiver: a HRTeamSetCalc > arg[0]: a HRPlayerSetCalc > stack temp[0]: a HRPlayerSetCalc > > {0B2802F4: cf 0B2802D1, sp 0B280310, bp 0B2802EC, ip 11, OrderedCollection>>do:} > receiver: a OrderedCollection > arg[0]: [] @ 32 in HRTeamSetCalc>>calculateSecondSetChance > stack temp[0]: 2 > > {0B2802D0: cf 0B2802A1, sp 0B2802E4, bp 0B2802C4, ip 77, [] in HRTeamSetCalc>>calculateSecondSetChance} > receiver: a HRTeamSetCalc > arg[0]: a HRPlayerSetCalc > > {0B2802A0: cf 0B28027D, sp 0B2802BC, bp 0B280298, ip 11, OrderedCollection>>do:} > receiver: a OrderedCollection > arg[0]: [] @ 21 in HRTeamSetCalc>>calculateSecondSetChance > stack temp[0]: 1 > > {0B28027C: cf 0B280259, sp 0B280290, bp 0B280274, ip 79, HRTeamSetCalc>>calculateSecondSetChance} > receiver: a HRTeamSetCalc > stack temp[0]: true > stack temp[1]: 0.1 > > {0B280258: cf 0B280235, sp 0B28026C, bp 0B280250, ip 50, HRTeamSetCalc>>calculateFirstSetChance} > receiver: a HRTeamSetCalc > stack temp[0]: false > stack temp[1]: 0.1 > > {0B280234: cf 0B280219, sp 0B280248, bp 0B280234, ip 62, HRTeamSetCalc>>calculateSetValue} > receiver: a HRTeamSetCalc > > {0B280218: cf 0B2801F1, sp 0B28022C, bp 0B280214, ip 6, [] in HRMeetingSetCalc>>setAll} > receiver: nil > arg[0]: a HRTeamSetCalc > > {0B2801F0: cf 0B2801CD, sp 0B28020C, bp 0B2801E8, ip 11, OrderedCollection>>do:} > receiver: a OrderedCollection > arg[0]: [] @ 4 in HRMeetingSetCalc>>setAll > stack temp[0]: 5 > > {0B2801CC: cf 0B2801B1, sp 0B2801E0, bp 0B2801CC, ip 8, HRMeetingSetCalc>>setAll} > receiver: a HRMeetingSetCalc > > {0B2801B0: cf 0B280195, sp 0B2801C4, bp 0B2801B0, ip 2, HRMeetingSetCalc>>recalcSetValues} > receiver: a HRMeetingSetCalc > > {0B280194: cf 0B280175, sp 0B2801A8, bp 0B280190, ip 5, Message>>forwardTo:} > receiver: Message selector: recalcSetValues arguments: ***Bad Array: 00000000 > arg[0]: a HRMeetingSetCalc > > {0B280174: cf 0B280155, sp 0B280188, bp 0B280170, ip 4, HRMyMeeting(HRMeetingStrat)>>doesNotUnderstand:} > receiver: a HRMyMeeting > arg[0]: Message selector: recalcSetValues arguments: ***Bad Array: 00000000 > > {0B280154: cf 0B280139, sp 0B280168, bp 0B280154, ip 16, HRMtgDashboardModel>>refresh} > receiver: a HRMtgDashboardModel > > {0B280138: cf 0B28011D, sp 0B28014C, bp 0B280138, ip 15, [] in HRScheduleItem>>execute} > receiver: a HRScheduleItem > > {0B28011C: cf 0B280101, sp 0B280130, bp 0B28011C, ip 13, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} > receiver: a ExceptionHandler > > {0B280100: cf 0B2800D9, sp 0B280114, bp 0B2800FC, ip 22, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} > receiver: a ExceptionHandler > > {0B2800D8: cf 0B2800B9, sp 0B2800EC, bp 0B2800D4, ip 18, BlockClosure>>ifCurtailed:} > receiver: [] @ 0 in nil > arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: > > {0B2800B8: cf 0B280095, sp 0B2800CC, bp 0B2800B0, ip 3, BlockClosure>>ensure:} > receiver: [] @ 17 in ExceptionHandlerAbstract>>try: > arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: > stack temp[0]: nil > > {0B280094: cf 0B28006D, sp 0B2800A8, bp 0B280088, ip 44, ExceptionHandler(ExceptionHandlerAbstract)>>try:} > receiver: a ExceptionHandler > arg[0]: [] @ 12 in HRScheduleItem>>execute > stack temp[0]: nil > stack temp[1]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) > env temp[0]: nil > > {0B28006C: cf 0B280049, sp 0B280080, bp 0B280064, ip 7, BlockClosure>>on:do:} > receiver: [] @ 12 in HRScheduleItem>>execute > arg[0]: ProcessTermination > arg[1]: [] @ 13 in BlockClosure>>newProcess > > {0B280048: cf 00000001, sp 0B28005C, bp 0B280048, ip 17, [] in BlockClosure>>newProcess} > receiver: [] @ 12 in HRScheduleItem>>execute > > <Bottom of stack> > > ***** End of dump ***** > > > ************************** Dolphin Virtual Machine Dump Report *************************** > > 16:42:04, 25/02/2006: UndefinedObject does not understand #asInteger > > *----> VM Context <----* > Process: {0B280004:size 435 words, suspended frame 0B280425, priority 3, callbacks 0 > last failure 2:nil, FPE mask 3, thread nil} > Active Method: SessionManager>>logError: > IP: 0985B0F9 (9) > SP: 0B2807B0 > BP: 0B280784 (465) > ActiveFrame: {0B280788: cf 0B280769, sp 0B2807A0, bp 0B280784, ip 5, MyAppSessionManager(SessionManager)>>logError:} > receiver: a MyAppSessionManager > arg[0]: a MessageNotUnderstood > > > New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth: > Message Selector: dump:path:stackDepth:walkbackDepth: > > *----> Stack Back Trace <----* > {0B280788: cf 0B280769, sp 0B2807A0, bp 0B280784, ip 5, MyAppSessionManager(SessionManager)>>logError:} > receiver: a MyAppSessionManager > arg[0]: a MessageNotUnderstood > > {0B280768: cf 0B280749, sp 0B28077C, bp 0B280764, ip 3, MyAppSessionManager(SessionManager)>>unhandledException:} > receiver: a MyAppSessionManager > arg[0]: a MessageNotUnderstood > > {0B280748: cf 0B280729, sp 0B28075C, bp 0B280744, ip 3, MyAppSessionManager(SessionManager)>>onUnhandledError:} > receiver: a MyAppSessionManager > arg[0]: a MessageNotUnderstood > > {0B280728: cf 0B28070D, sp 0B28073C, bp 0B280728, ip 5, MessageNotUnderstood(Error)>>defaultAction} > receiver: a MessageNotUnderstood > > {0B28070C: cf 0B2806D9, sp 0B280720, bp 0B2806F4, ip 55, MessageNotUnderstood(Exception)>>_propagateFrom:} > receiver: a MessageNotUnderstood > arg[0]: a ExceptionHandler > stack temp[0]: nil > stack temp[1]: a ExceptionHandler > stack temp[2]: nil > stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) > stack temp[4]: nil > > {0B2806D8: cf 0B2806B9, sp 0B2806EC, bp 0B2806D4, ip 6, MessageNotUnderstood(Exception)>>_propagate} > receiver: a MessageNotUnderstood > stack temp[0]: nil > > {0B2806B8: cf 0B28069D, sp 0B2806CC, bp 0B2806B8, ip 11, MessageNotUnderstood(Exception)>>signal} > receiver: a MessageNotUnderstood > > {0B28069C: cf 0B280679, sp 0B2806B0, bp 0B280694, ip 12, MessageNotUnderstood class>>receiver:message:} > receiver: MessageNotUnderstood > arg[0]: nil > arg[1]: Message selector: asInteger arguments: ***Bad Array: 00000000 > > {0B280678: cf 0B280659, sp 0B28068C, bp 0B280674, ip 4, Object>>doesNotUnderstand:} > receiver: nil > arg[0]: Message selector: asInteger arguments: ***Bad Array: 00000000 > > {0B280658: cf 0B280631, sp 0B28066C, bp 0B28064C, ip 10, ByteArray>>retryDwordAtOffset:put:} > receiver: a ByteArray > arg[0]: 4 > arg[1]: nil > stack temp[0]: nil > > {0B280630: cf 0B28060D, sp 0B280644, bp 0B280628, ip 4, ByteArray>>dwordAtOffset:put:} > receiver: a ByteArray > arg[0]: 4 > arg[1]: nil > > {0B28060C: cf 0B2805ED, sp 0B280620, bp 0B280608, ip 6, MSGBOXPARAMS>>hwndOwner:} > receiver: a MSGBOXPARAMS > arg[0]: nil > > {0B2805EC: cf 0B28059D, sp 0B280600, bp 0B2805B8, ip 73, UserLibrary>>messageBox:text:caption:style:icon:instance:} > receiver: a UserLibrary > arg[0]: nil > arg[1]: ''Division by zero of 0.0'' > arg[2]: ''MP59Alpha5'' > arg[3]: 16 > arg[4]: nil > arg[5]: nil > stack temp[0]: nil > stack temp[1]: a MSGBOXPARAMS > stack temp[2]: nil > stack temp[3]: nil > stack temp[4]: nil > stack temp[5]: false > stack temp[6]: nil > > {0B28059C: cf 0B280579, sp 0B2805B0, bp 0B280594, ip 20, ZeroDivide(Exception)>>showMessage:style:} > receiver: a ZeroDivide > arg[0]: ''Division by zero of 0.0'' > arg[1]: 16 > > {0B280578: cf 0B28055D, sp 0B28058C, bp 0B280578, ip 11, ZeroDivide(Exception)>>okToContinue} > receiver: a ZeroDivide > > {0B28055C: cf 0B28053D, sp 0B280570, bp 0B280558, ip 6, MyAppSessionManager(SessionManager)>>unhandledException:} > receiver: a MyAppSessionManager > arg[0]: a ZeroDivide > > {0B28053C: cf 0B28051D, sp 0B280550, bp 0B280538, ip 3, MyAppSessionManager(SessionManager)>>onUnhandledError:} > receiver: a MyAppSessionManager > arg[0]: a ZeroDivide > > {0B28051C: cf 0B280501, sp 0B280530, bp 0B28051C, ip 5, ZeroDivide(Error)>>defaultAction} > receiver: a ZeroDivide > > {0B280500: cf 0B2804CD, sp 0B280514, bp 0B2804E8, ip 55, ZeroDivide(Exception)>>_propagateFrom:} > receiver: a ZeroDivide > arg[0]: a ExceptionHandler > stack temp[0]: nil > stack temp[1]: a ExceptionHandler > stack temp[2]: nil > stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) > stack temp[4]: nil > > {0B2804CC: cf 0B2804AD, sp 0B2804E0, bp 0B2804C8, ip 6, ZeroDivide(Exception)>>_propagate} > receiver: a ZeroDivide > stack temp[0]: nil > > {0B2804AC: cf 0B280491, sp 0B2804C0, bp 0B2804AC, ip 11, ZeroDivide(Exception)>>signal} > receiver: a ZeroDivide > > {0B280490: cf 0B28046D, sp 0B2804A4, bp 0B280488, ip 8, ZeroDivide(Exception)>>signal:with:} > receiver: a ZeroDivide > arg[0]: nil > arg[1]: 0 > > {0B28046C: cf 0B280449, sp 0B280480, bp 0B280464, ip 6, ZeroDivide class(Exception class)>>signal:with:} > receiver: ZeroDivide > arg[0]: nil > arg[1]: 0 > > {0B280448: cf 0B280429, sp 0B28045C, bp 0B280444, ip 5, ZeroDivide class(Exception class)>>signalWith:} > receiver: ZeroDivide > arg[0]: 0 > > {0B280428: cf 0B280409, sp 0B28043C, bp 0B280424, ip 3, ZeroDivide class>>dividend:} > receiver: ZeroDivide > arg[0]: 0 > > {0B280408: cf 0B2803E5, sp 0B28041C, bp 0B280400, ip 14, ProcessorScheduler>>fpException:} > receiver: a ProcessorScheduler > arg[0]: a ByteArray > stack temp[0]: a _FPIEEE_RECORD > > {0B2803E4: cf 0B2803B9, sp 0B2803F8, bp 0B2803DC, ip 16, [] in ProcessorScheduler>>vmi:list:no:with:} > receiver: a ProcessorScheduler > > {0B2803B8: cf 0B280399, sp 0B2803CC, bp 0B2803B4, ip 18, BlockClosure>>ifCurtailed:} > receiver: [] @ 0 in nil > arg[0]: [] @ 24 in ProcessorScheduler>>vmi:list:no:with: > > {0B280398: cf 0B28036D, sp 0B2803AC, bp 0B280388, ip 27, ProcessorScheduler>>vmi:list:no:with:} > receiver: a ProcessorScheduler > arg[0]: 872 > arg[1]: nil > arg[2]: 10 > arg[3]: a ByteArray > > {0B28036C: cf 0B28034D, sp 0B280380, bp 0B280368, ip 0, Float(ArithmeticValue)>>divideIntoFloat:} > receiver: 0 > arg[0]: 0 > > {0B28034C: cf 0B28032D, sp 0B280360, bp 0B280348, ip 4, Float>>/} > receiver: 0 > arg[0]: 0 > > {0B28032C: cf 0B2802F5, sp 0B280340, bp 0B280318, ip 49, [] in HRTeamSetCalc>>calculateSecondSetChance} > receiver: a HRTeamSetCalc > arg[0]: a HRPlayerSetCalc > stack temp[0]: a HRPlayerSetCalc > > {0B2802F4: cf 0B2802D1, sp 0B280310, bp 0B2802EC, ip 11, OrderedCollection>>do:} > receiver: a OrderedCollection > arg[0]: [] @ 32 in HRTeamSetCalc>>calculateSecondSetChance > stack temp[0]: 2 > > {0B2802D0: cf 0B2802A1, sp 0B2802E4, bp 0B2802C4, ip 77, [] in HRTeamSetCalc>>calculateSecondSetChance} > receiver: a HRTeamSetCalc > arg[0]: a HRPlayerSetCalc > > {0B2802A0: cf 0B28027D, sp 0B2802BC, bp 0B280298, ip 11, OrderedCollection>>do:} > receiver: a OrderedCollection > arg[0]: [] @ 21 in HRTeamSetCalc>>calculateSecondSetChance > stack temp[0]: 1 > > {0B28027C: cf 0B280259, sp 0B280290, bp 0B280274, ip 79, HRTeamSetCalc>>calculateSecondSetChance} > receiver: a HRTeamSetCalc > stack temp[0]: true > stack temp[1]: 0.1 > > {0B280258: cf 0B280235, sp 0B28026C, bp 0B280250, ip 50, HRTeamSetCalc>>calculateFirstSetChance} > receiver: a HRTeamSetCalc > stack temp[0]: false > stack temp[1]: 0.1 > > {0B280234: cf 0B280219, sp 0B280248, bp 0B280234, ip 62, HRTeamSetCalc>>calculateSetValue} > receiver: a HRTeamSetCalc > > {0B280218: cf 0B2801F1, sp 0B28022C, bp 0B280214, ip 6, [] in HRMeetingSetCalc>>setAll} > receiver: nil > arg[0]: a HRTeamSetCalc > > {0B2801F0: cf 0B2801CD, sp 0B28020C, bp 0B2801E8, ip 11, OrderedCollection>>do:} > receiver: a OrderedCollection > arg[0]: [] @ 4 in HRMeetingSetCalc>>setAll > stack temp[0]: 5 > > {0B2801CC: cf 0B2801B1, sp 0B2801E0, bp 0B2801CC, ip 8, HRMeetingSetCalc>>setAll} > receiver: a HRMeetingSetCalc > > {0B2801B0: cf 0B280195, sp 0B2801C4, bp 0B2801B0, ip 2, HRMeetingSetCalc>>recalcSetValues} > receiver: a HRMeetingSetCalc > > {0B280194: cf 0B280175, sp 0B2801A8, bp 0B280190, ip 5, Message>>forwardTo:} > receiver: Message selector: recalcSetValues arguments: ***Bad Array: 00000000 > arg[0]: a HRMeetingSetCalc > > {0B280174: cf 0B280155, sp 0B280188, bp 0B280170, ip 4, HRMyMeeting(HRMeetingStrat)>>doesNotUnderstand:} > receiver: a HRMyMeeting > arg[0]: Message selector: recalcSetValues arguments: ***Bad Array: 00000000 > > {0B280154: cf 0B280139, sp 0B280168, bp 0B280154, ip 16, HRMtgDashboardModel>>refresh} > receiver: a HRMtgDashboardModel > > {0B280138: cf 0B28011D, sp 0B28014C, bp 0B280138, ip 15, [] in HRScheduleItem>>execute} > receiver: a HRScheduleItem > > {0B28011C: cf 0B280101, sp 0B280130, bp 0B28011C, ip 13, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} > receiver: a ExceptionHandler > > {0B280100: cf 0B2800D9, sp 0B280114, bp 0B2800FC, ip 22, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:} > receiver: a ExceptionHandler > > {0B2800D8: cf 0B2800B9, sp 0B2800EC, bp 0B2800D4, ip 18, BlockClosure>>ifCurtailed:} > receiver: [] @ 0 in nil > arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: > > {0B2800B8: cf 0B280095, sp 0B2800CC, bp 0B2800B0, ip 3, BlockClosure>>ensure:} > receiver: [] @ 17 in ExceptionHandlerAbstract>>try: > arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: > stack temp[0]: nil > > {0B280094: cf 0B28006D, sp 0B2800A8, bp 0B280088, ip 44, ExceptionHandler(ExceptionHandlerAbstract)>>try:} > receiver: a ExceptionHandler > arg[0]: [] @ 12 in HRScheduleItem>>execute > stack temp[0]: nil > stack temp[1]: a Process(HRScheduleItem>>execute base 0B280000 [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) > env temp[0]: nil > > {0B28006C: cf 0B280049, sp 0B280080, bp 0B280064, ip 7, BlockClosure>>on:do:} > receiver: [] @ 12 in HRScheduleItem>>execute > arg[0]: ProcessTermination > arg[1]: [] @ 13 in BlockClosure>>newProcess > > {0B280048: cf 00000001, sp 0B28005C, bp 0B280048, ip 17, [] in BlockClosure>>newProcess} > receiver: [] @ 12 in HRScheduleItem>>execute > > <Bottom of stack> > > ***** End of dump ***** |
Well, I'm not getting any further with this (and nobody else seems to
worry about it ...) so I'm afraid I will have to resort to porting that app back into D5. Ted Ted wrote: > I found a way to easily reproduce this. Just put a 'self halt' in your > app (with the #doesNotUnderstand: forwarding mechanism), deploy it and - > hey presto. > > Something must have changed in this area as in D5 these issues never > caused the app to crash so badly. > > Should I worry about the fact that the error file is massive and seems > to have dodgy data in it? What about that bad array? > > Ted > > > Ted wrote: > >> Hi, >> >> I've had several occurrences of a crash of my deployed app leaving a >> massive (~200Mb) .ERRORS file that has some kind of dodgy data in it. >> When trying to open the file, it seems to have multiple start-of-file >> and end-of-file characters in it, as the reader thinks it is at the >> start/end throughout the file. >> >> This is DX6, the same app has never done this in D5. >> >> The app seems to be crashing on a divide-by-zero error, with some >> strange references of a bad array [00000000]. Trying to figure out >> what's going on I got the suspicion it is in the message forwarding. >> I've overridden #doesNotUnderstand: to forward messages of a wrapper to >> the wrapped object. Now the bad array gets created when the message >> (which doesn't have any arguments) gets sent around. As the Array has >> seen changes in DX6 to support immutable arrays, I can imagine the >> Message class>>selector: message might be causing the problem, as that >> creates an immutable array for the arguments. >> >> See enclosed for an extract of the error log (most of this is repeated >> umpteen times). >> >> Can anybody shed some light on this? >> >> Thanks, >> >> Ted >> >> >> ------------------------------------------------------------------------ >> >> ************************** Dolphin Virtual Machine Dump Report >> *************************** >> >> 16:42:04, 25/02/2006: Division by zero of 0.0 >> >> *----> VM Context <----* >> Process: {0B280004:size 304 words, suspended frame 0B280425, priority >> 3, callbacks 0 >> last failure 0:nil, FPE mask 3, thread nil} >> Active Method: SessionManager>>logError: >> IP: 0985B0F9 (9) >> SP: 0B2805A4 >> BP: 0B280578 (334) >> ActiveFrame: {0B28057C: cf 0B28055D, sp 0B280594, bp 0B280578, ip 5, >> MyAppSessionManager(SessionManager)>>logError:} >> receiver: a MyAppSessionManager >> arg[0]: a ZeroDivide >> >> >> New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth: >> Message Selector: dump:path:stackDepth:walkbackDepth: >> >> *----> Stack Back Trace <----* >> {0B28057C: cf 0B28055D, sp 0B280594, bp 0B280578, ip 5, >> MyAppSessionManager(SessionManager)>>logError:} >> receiver: a MyAppSessionManager >> arg[0]: a ZeroDivide >> >> {0B28055C: cf 0B28053D, sp 0B280570, bp 0B280558, ip 3, >> MyAppSessionManager(SessionManager)>>unhandledException:} >> receiver: a MyAppSessionManager >> arg[0]: a ZeroDivide >> >> {0B28053C: cf 0B28051D, sp 0B280550, bp 0B280538, ip 3, >> MyAppSessionManager(SessionManager)>>onUnhandledError:} >> receiver: a MyAppSessionManager >> arg[0]: a ZeroDivide >> >> {0B28051C: cf 0B280501, sp 0B280530, bp 0B28051C, ip 5, >> ZeroDivide(Error)>>defaultAction} >> receiver: a ZeroDivide >> >> {0B280500: cf 0B2804CD, sp 0B280514, bp 0B2804E8, ip 55, >> ZeroDivide(Exception)>>_propagateFrom:} >> receiver: a ZeroDivide >> arg[0]: a ExceptionHandler >> stack temp[0]: nil >> stack temp[1]: a ExceptionHandler >> stack temp[2]: nil >> stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 >> [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) >> stack temp[4]: nil >> >> {0B2804CC: cf 0B2804AD, sp 0B2804E0, bp 0B2804C8, ip 6, >> ZeroDivide(Exception)>>_propagate} >> receiver: a ZeroDivide >> stack temp[0]: nil >> >> {0B2804AC: cf 0B280491, sp 0B2804C0, bp 0B2804AC, ip 11, >> ZeroDivide(Exception)>>signal} >> receiver: a ZeroDivide >> >> {0B280490: cf 0B28046D, sp 0B2804A4, bp 0B280488, ip 8, >> ZeroDivide(Exception)>>signal:with:} >> receiver: a ZeroDivide >> arg[0]: nil >> arg[1]: 0 >> >> {0B28046C: cf 0B280449, sp 0B280480, bp 0B280464, ip 6, ZeroDivide >> class(Exception class)>>signal:with:} >> receiver: ZeroDivide >> arg[0]: nil >> arg[1]: 0 >> >> {0B280448: cf 0B280429, sp 0B28045C, bp 0B280444, ip 5, ZeroDivide >> class(Exception class)>>signalWith:} >> receiver: ZeroDivide >> arg[0]: 0 >> >> {0B280428: cf 0B280409, sp 0B28043C, bp 0B280424, ip 3, ZeroDivide >> class>>dividend:} >> receiver: ZeroDivide >> arg[0]: 0 >> >> {0B280408: cf 0B2803E5, sp 0B28041C, bp 0B280400, ip 14, >> ProcessorScheduler>>fpException:} >> receiver: a ProcessorScheduler >> arg[0]: a ByteArray >> stack temp[0]: a _FPIEEE_RECORD >> >> {0B2803E4: cf 0B2803B9, sp 0B2803F8, bp 0B2803DC, ip 16, [] in >> ProcessorScheduler>>vmi:list:no:with:} >> receiver: a ProcessorScheduler >> >> {0B2803B8: cf 0B280399, sp 0B2803CC, bp 0B2803B4, ip 18, >> BlockClosure>>ifCurtailed:} >> receiver: [] @ 0 in nil >> arg[0]: [] @ 24 in ProcessorScheduler>>vmi:list:no:with: >> >> {0B280398: cf 0B28036D, sp 0B2803AC, bp 0B280388, ip 27, >> ProcessorScheduler>>vmi:list:no:with:} >> receiver: a ProcessorScheduler >> arg[0]: 872 >> arg[1]: nil >> arg[2]: 10 >> arg[3]: a ByteArray >> >> {0B28036C: cf 0B28034D, sp 0B280380, bp 0B280368, ip 0, >> Float(ArithmeticValue)>>divideIntoFloat:} >> receiver: 0 >> arg[0]: 0 >> >> {0B28034C: cf 0B28032D, sp 0B280360, bp 0B280348, ip 4, Float>>/} >> receiver: 0 >> arg[0]: 0 >> >> {0B28032C: cf 0B2802F5, sp 0B280340, bp 0B280318, ip 49, [] in >> HRTeamSetCalc>>calculateSecondSetChance} >> receiver: a HRTeamSetCalc >> arg[0]: a HRPlayerSetCalc >> stack temp[0]: a HRPlayerSetCalc >> >> {0B2802F4: cf 0B2802D1, sp 0B280310, bp 0B2802EC, ip 11, >> OrderedCollection>>do:} >> receiver: a OrderedCollection >> arg[0]: [] @ 32 in HRTeamSetCalc>>calculateSecondSetChance >> stack temp[0]: 2 >> >> {0B2802D0: cf 0B2802A1, sp 0B2802E4, bp 0B2802C4, ip 77, [] in >> HRTeamSetCalc>>calculateSecondSetChance} >> receiver: a HRTeamSetCalc >> arg[0]: a HRPlayerSetCalc >> >> {0B2802A0: cf 0B28027D, sp 0B2802BC, bp 0B280298, ip 11, >> OrderedCollection>>do:} >> receiver: a OrderedCollection >> arg[0]: [] @ 21 in HRTeamSetCalc>>calculateSecondSetChance >> stack temp[0]: 1 >> >> {0B28027C: cf 0B280259, sp 0B280290, bp 0B280274, ip 79, >> HRTeamSetCalc>>calculateSecondSetChance} >> receiver: a HRTeamSetCalc >> stack temp[0]: true >> stack temp[1]: 0.1 >> >> {0B280258: cf 0B280235, sp 0B28026C, bp 0B280250, ip 50, >> HRTeamSetCalc>>calculateFirstSetChance} >> receiver: a HRTeamSetCalc >> stack temp[0]: false >> stack temp[1]: 0.1 >> >> {0B280234: cf 0B280219, sp 0B280248, bp 0B280234, ip 62, >> HRTeamSetCalc>>calculateSetValue} >> receiver: a HRTeamSetCalc >> >> {0B280218: cf 0B2801F1, sp 0B28022C, bp 0B280214, ip 6, [] in >> HRMeetingSetCalc>>setAll} >> receiver: nil >> arg[0]: a HRTeamSetCalc >> >> {0B2801F0: cf 0B2801CD, sp 0B28020C, bp 0B2801E8, ip 11, >> OrderedCollection>>do:} >> receiver: a OrderedCollection >> arg[0]: [] @ 4 in HRMeetingSetCalc>>setAll >> stack temp[0]: 5 >> >> {0B2801CC: cf 0B2801B1, sp 0B2801E0, bp 0B2801CC, ip 8, >> HRMeetingSetCalc>>setAll} >> receiver: a HRMeetingSetCalc >> >> {0B2801B0: cf 0B280195, sp 0B2801C4, bp 0B2801B0, ip 2, >> HRMeetingSetCalc>>recalcSetValues} >> receiver: a HRMeetingSetCalc >> >> {0B280194: cf 0B280175, sp 0B2801A8, bp 0B280190, ip 5, >> Message>>forwardTo:} >> receiver: Message selector: recalcSetValues arguments: ***Bad >> Array: 00000000 >> arg[0]: a HRMeetingSetCalc >> >> {0B280174: cf 0B280155, sp 0B280188, bp 0B280170, ip 4, >> HRMyMeeting(HRMeetingStrat)>>doesNotUnderstand:} >> receiver: a HRMyMeeting >> arg[0]: Message selector: recalcSetValues arguments: ***Bad Array: >> 00000000 >> >> {0B280154: cf 0B280139, sp 0B280168, bp 0B280154, ip 16, >> HRMtgDashboardModel>>refresh} >> receiver: a HRMtgDashboardModel >> >> {0B280138: cf 0B28011D, sp 0B28014C, bp 0B280138, ip 15, [] in >> HRScheduleItem>>execute} >> receiver: a HRScheduleItem >> >> {0B28011C: cf 0B280101, sp 0B280130, bp 0B28011C, ip 13, >> ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} >> receiver: a ExceptionHandler >> >> {0B280100: cf 0B2800D9, sp 0B280114, bp 0B2800FC, ip 22, [] in >> ExceptionHandler(ExceptionHandlerAbstract)>>try:} >> receiver: a ExceptionHandler >> >> {0B2800D8: cf 0B2800B9, sp 0B2800EC, bp 0B2800D4, ip 18, >> BlockClosure>>ifCurtailed:} >> receiver: [] @ 0 in nil >> arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: >> >> {0B2800B8: cf 0B280095, sp 0B2800CC, bp 0B2800B0, ip 3, >> BlockClosure>>ensure:} >> receiver: [] @ 17 in ExceptionHandlerAbstract>>try: >> arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: >> stack temp[0]: nil >> >> {0B280094: cf 0B28006D, sp 0B2800A8, bp 0B280088, ip 44, >> ExceptionHandler(ExceptionHandlerAbstract)>>try:} >> receiver: a ExceptionHandler >> arg[0]: [] @ 12 in HRScheduleItem>>execute >> stack temp[0]: nil >> stack temp[1]: a Process(HRScheduleItem>>execute base 0B280000 >> [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) >> env temp[0]: nil >> >> {0B28006C: cf 0B280049, sp 0B280080, bp 0B280064, ip 7, >> BlockClosure>>on:do:} >> receiver: [] @ 12 in HRScheduleItem>>execute >> arg[0]: ProcessTermination >> arg[1]: [] @ 13 in BlockClosure>>newProcess >> >> {0B280048: cf 00000001, sp 0B28005C, bp 0B280048, ip 17, [] in >> BlockClosure>>newProcess} >> receiver: [] @ 12 in HRScheduleItem>>execute >> >> <Bottom of stack> >> >> ***** End of dump ***** >> >> >> ************************** Dolphin Virtual Machine Dump Report >> *************************** >> >> 16:42:04, 25/02/2006: UndefinedObject does not understand #asInteger >> >> *----> VM Context <----* >> Process: {0B280004:size 435 words, suspended frame 0B280425, priority >> 3, callbacks 0 >> last failure 2:nil, FPE mask 3, thread nil} >> Active Method: SessionManager>>logError: >> IP: 0985B0F9 (9) >> SP: 0B2807B0 >> BP: 0B280784 (465) >> ActiveFrame: {0B280788: cf 0B280769, sp 0B2807A0, bp 0B280784, ip 5, >> MyAppSessionManager(SessionManager)>>logError:} >> receiver: a MyAppSessionManager >> arg[0]: a MessageNotUnderstood >> >> >> New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth: >> Message Selector: dump:path:stackDepth:walkbackDepth: >> >> *----> Stack Back Trace <----* >> {0B280788: cf 0B280769, sp 0B2807A0, bp 0B280784, ip 5, >> MyAppSessionManager(SessionManager)>>logError:} >> receiver: a MyAppSessionManager >> arg[0]: a MessageNotUnderstood >> >> {0B280768: cf 0B280749, sp 0B28077C, bp 0B280764, ip 3, >> MyAppSessionManager(SessionManager)>>unhandledException:} >> receiver: a MyAppSessionManager >> arg[0]: a MessageNotUnderstood >> >> {0B280748: cf 0B280729, sp 0B28075C, bp 0B280744, ip 3, >> MyAppSessionManager(SessionManager)>>onUnhandledError:} >> receiver: a MyAppSessionManager >> arg[0]: a MessageNotUnderstood >> >> {0B280728: cf 0B28070D, sp 0B28073C, bp 0B280728, ip 5, >> MessageNotUnderstood(Error)>>defaultAction} >> receiver: a MessageNotUnderstood >> >> {0B28070C: cf 0B2806D9, sp 0B280720, bp 0B2806F4, ip 55, >> MessageNotUnderstood(Exception)>>_propagateFrom:} >> receiver: a MessageNotUnderstood >> arg[0]: a ExceptionHandler >> stack temp[0]: nil >> stack temp[1]: a ExceptionHandler >> stack temp[2]: nil >> stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 >> [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) >> stack temp[4]: nil >> >> {0B2806D8: cf 0B2806B9, sp 0B2806EC, bp 0B2806D4, ip 6, >> MessageNotUnderstood(Exception)>>_propagate} >> receiver: a MessageNotUnderstood >> stack temp[0]: nil >> >> {0B2806B8: cf 0B28069D, sp 0B2806CC, bp 0B2806B8, ip 11, >> MessageNotUnderstood(Exception)>>signal} >> receiver: a MessageNotUnderstood >> >> {0B28069C: cf 0B280679, sp 0B2806B0, bp 0B280694, ip 12, >> MessageNotUnderstood class>>receiver:message:} >> receiver: MessageNotUnderstood >> arg[0]: nil >> arg[1]: Message selector: asInteger arguments: ***Bad Array: 00000000 >> >> {0B280678: cf 0B280659, sp 0B28068C, bp 0B280674, ip 4, >> Object>>doesNotUnderstand:} >> receiver: nil >> arg[0]: Message selector: asInteger arguments: ***Bad Array: 00000000 >> >> {0B280658: cf 0B280631, sp 0B28066C, bp 0B28064C, ip 10, >> ByteArray>>retryDwordAtOffset:put:} >> receiver: a ByteArray >> arg[0]: 4 >> arg[1]: nil >> stack temp[0]: nil >> >> {0B280630: cf 0B28060D, sp 0B280644, bp 0B280628, ip 4, >> ByteArray>>dwordAtOffset:put:} >> receiver: a ByteArray >> arg[0]: 4 >> arg[1]: nil >> >> {0B28060C: cf 0B2805ED, sp 0B280620, bp 0B280608, ip 6, >> MSGBOXPARAMS>>hwndOwner:} >> receiver: a MSGBOXPARAMS >> arg[0]: nil >> >> {0B2805EC: cf 0B28059D, sp 0B280600, bp 0B2805B8, ip 73, >> UserLibrary>>messageBox:text:caption:style:icon:instance:} >> receiver: a UserLibrary >> arg[0]: nil >> arg[1]: ''Division by zero of 0.0'' >> arg[2]: ''MP59Alpha5'' >> arg[3]: 16 >> arg[4]: nil >> arg[5]: nil >> stack temp[0]: nil >> stack temp[1]: a MSGBOXPARAMS >> stack temp[2]: nil >> stack temp[3]: nil >> stack temp[4]: nil >> stack temp[5]: false >> stack temp[6]: nil >> >> {0B28059C: cf 0B280579, sp 0B2805B0, bp 0B280594, ip 20, >> ZeroDivide(Exception)>>showMessage:style:} >> receiver: a ZeroDivide >> arg[0]: ''Division by zero of 0.0'' >> arg[1]: 16 >> >> {0B280578: cf 0B28055D, sp 0B28058C, bp 0B280578, ip 11, >> ZeroDivide(Exception)>>okToContinue} >> receiver: a ZeroDivide >> >> {0B28055C: cf 0B28053D, sp 0B280570, bp 0B280558, ip 6, >> MyAppSessionManager(SessionManager)>>unhandledException:} >> receiver: a MyAppSessionManager >> arg[0]: a ZeroDivide >> >> {0B28053C: cf 0B28051D, sp 0B280550, bp 0B280538, ip 3, >> MyAppSessionManager(SessionManager)>>onUnhandledError:} >> receiver: a MyAppSessionManager >> arg[0]: a ZeroDivide >> >> {0B28051C: cf 0B280501, sp 0B280530, bp 0B28051C, ip 5, >> ZeroDivide(Error)>>defaultAction} >> receiver: a ZeroDivide >> >> {0B280500: cf 0B2804CD, sp 0B280514, bp 0B2804E8, ip 55, >> ZeroDivide(Exception)>>_propagateFrom:} >> receiver: a ZeroDivide >> arg[0]: a ExceptionHandler >> stack temp[0]: nil >> stack temp[1]: a ExceptionHandler >> stack temp[2]: nil >> stack temp[3]: a Process(HRScheduleItem>>execute base 0B280000 >> [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) >> stack temp[4]: nil >> >> {0B2804CC: cf 0B2804AD, sp 0B2804E0, bp 0B2804C8, ip 6, >> ZeroDivide(Exception)>>_propagate} >> receiver: a ZeroDivide >> stack temp[0]: nil >> >> {0B2804AC: cf 0B280491, sp 0B2804C0, bp 0B2804AC, ip 11, >> ZeroDivide(Exception)>>signal} >> receiver: a ZeroDivide >> >> {0B280490: cf 0B28046D, sp 0B2804A4, bp 0B280488, ip 8, >> ZeroDivide(Exception)>>signal:with:} >> receiver: a ZeroDivide >> arg[0]: nil >> arg[1]: 0 >> >> {0B28046C: cf 0B280449, sp 0B280480, bp 0B280464, ip 6, ZeroDivide >> class(Exception class)>>signal:with:} >> receiver: ZeroDivide >> arg[0]: nil >> arg[1]: 0 >> >> {0B280448: cf 0B280429, sp 0B28045C, bp 0B280444, ip 5, ZeroDivide >> class(Exception class)>>signalWith:} >> receiver: ZeroDivide >> arg[0]: 0 >> >> {0B280428: cf 0B280409, sp 0B28043C, bp 0B280424, ip 3, ZeroDivide >> class>>dividend:} >> receiver: ZeroDivide >> arg[0]: 0 >> >> {0B280408: cf 0B2803E5, sp 0B28041C, bp 0B280400, ip 14, >> ProcessorScheduler>>fpException:} >> receiver: a ProcessorScheduler >> arg[0]: a ByteArray >> stack temp[0]: a _FPIEEE_RECORD >> >> {0B2803E4: cf 0B2803B9, sp 0B2803F8, bp 0B2803DC, ip 16, [] in >> ProcessorScheduler>>vmi:list:no:with:} >> receiver: a ProcessorScheduler >> >> {0B2803B8: cf 0B280399, sp 0B2803CC, bp 0B2803B4, ip 18, >> BlockClosure>>ifCurtailed:} >> receiver: [] @ 0 in nil >> arg[0]: [] @ 24 in ProcessorScheduler>>vmi:list:no:with: >> >> {0B280398: cf 0B28036D, sp 0B2803AC, bp 0B280388, ip 27, >> ProcessorScheduler>>vmi:list:no:with:} >> receiver: a ProcessorScheduler >> arg[0]: 872 >> arg[1]: nil >> arg[2]: 10 >> arg[3]: a ByteArray >> >> {0B28036C: cf 0B28034D, sp 0B280380, bp 0B280368, ip 0, >> Float(ArithmeticValue)>>divideIntoFloat:} >> receiver: 0 >> arg[0]: 0 >> >> {0B28034C: cf 0B28032D, sp 0B280360, bp 0B280348, ip 4, Float>>/} >> receiver: 0 >> arg[0]: 0 >> >> {0B28032C: cf 0B2802F5, sp 0B280340, bp 0B280318, ip 49, [] in >> HRTeamSetCalc>>calculateSecondSetChance} >> receiver: a HRTeamSetCalc >> arg[0]: a HRPlayerSetCalc >> stack temp[0]: a HRPlayerSetCalc >> >> {0B2802F4: cf 0B2802D1, sp 0B280310, bp 0B2802EC, ip 11, >> OrderedCollection>>do:} >> receiver: a OrderedCollection >> arg[0]: [] @ 32 in HRTeamSetCalc>>calculateSecondSetChance >> stack temp[0]: 2 >> >> {0B2802D0: cf 0B2802A1, sp 0B2802E4, bp 0B2802C4, ip 77, [] in >> HRTeamSetCalc>>calculateSecondSetChance} >> receiver: a HRTeamSetCalc >> arg[0]: a HRPlayerSetCalc >> >> {0B2802A0: cf 0B28027D, sp 0B2802BC, bp 0B280298, ip 11, >> OrderedCollection>>do:} >> receiver: a OrderedCollection >> arg[0]: [] @ 21 in HRTeamSetCalc>>calculateSecondSetChance >> stack temp[0]: 1 >> >> {0B28027C: cf 0B280259, sp 0B280290, bp 0B280274, ip 79, >> HRTeamSetCalc>>calculateSecondSetChance} >> receiver: a HRTeamSetCalc >> stack temp[0]: true >> stack temp[1]: 0.1 >> >> {0B280258: cf 0B280235, sp 0B28026C, bp 0B280250, ip 50, >> HRTeamSetCalc>>calculateFirstSetChance} >> receiver: a HRTeamSetCalc >> stack temp[0]: false >> stack temp[1]: 0.1 >> >> {0B280234: cf 0B280219, sp 0B280248, bp 0B280234, ip 62, >> HRTeamSetCalc>>calculateSetValue} >> receiver: a HRTeamSetCalc >> >> {0B280218: cf 0B2801F1, sp 0B28022C, bp 0B280214, ip 6, [] in >> HRMeetingSetCalc>>setAll} >> receiver: nil >> arg[0]: a HRTeamSetCalc >> >> {0B2801F0: cf 0B2801CD, sp 0B28020C, bp 0B2801E8, ip 11, >> OrderedCollection>>do:} >> receiver: a OrderedCollection >> arg[0]: [] @ 4 in HRMeetingSetCalc>>setAll >> stack temp[0]: 5 >> >> {0B2801CC: cf 0B2801B1, sp 0B2801E0, bp 0B2801CC, ip 8, >> HRMeetingSetCalc>>setAll} >> receiver: a HRMeetingSetCalc >> >> {0B2801B0: cf 0B280195, sp 0B2801C4, bp 0B2801B0, ip 2, >> HRMeetingSetCalc>>recalcSetValues} >> receiver: a HRMeetingSetCalc >> >> {0B280194: cf 0B280175, sp 0B2801A8, bp 0B280190, ip 5, >> Message>>forwardTo:} >> receiver: Message selector: recalcSetValues arguments: ***Bad >> Array: 00000000 >> arg[0]: a HRMeetingSetCalc >> >> {0B280174: cf 0B280155, sp 0B280188, bp 0B280170, ip 4, >> HRMyMeeting(HRMeetingStrat)>>doesNotUnderstand:} >> receiver: a HRMyMeeting >> arg[0]: Message selector: recalcSetValues arguments: ***Bad Array: >> 00000000 >> >> {0B280154: cf 0B280139, sp 0B280168, bp 0B280154, ip 16, >> HRMtgDashboardModel>>refresh} >> receiver: a HRMtgDashboardModel >> >> {0B280138: cf 0B28011D, sp 0B28014C, bp 0B280138, ip 15, [] in >> HRScheduleItem>>execute} >> receiver: a HRScheduleItem >> >> {0B28011C: cf 0B280101, sp 0B280130, bp 0B28011C, ip 13, >> ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry} >> receiver: a ExceptionHandler >> >> {0B280100: cf 0B2800D9, sp 0B280114, bp 0B2800FC, ip 22, [] in >> ExceptionHandler(ExceptionHandlerAbstract)>>try:} >> receiver: a ExceptionHandler >> >> {0B2800D8: cf 0B2800B9, sp 0B2800EC, bp 0B2800D4, ip 18, >> BlockClosure>>ifCurtailed:} >> receiver: [] @ 0 in nil >> arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: >> >> {0B2800B8: cf 0B280095, sp 0B2800CC, bp 0B2800B0, ip 3, >> BlockClosure>>ensure:} >> receiver: [] @ 17 in ExceptionHandlerAbstract>>try: >> arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try: >> stack temp[0]: nil >> >> {0B280094: cf 0B28006D, sp 0B2800A8, bp 0B280088, ip 44, >> ExceptionHandler(ExceptionHandlerAbstract)>>try:} >> receiver: a ExceptionHandler >> arg[0]: [] @ 12 in HRScheduleItem>>execute >> stack temp[0]: nil >> stack temp[1]: a Process(HRScheduleItem>>execute base 0B280000 >> [ACTIVE] in SessionManager>>logError: sp=00000000 ip=4 list=01720010) >> env temp[0]: nil >> >> {0B28006C: cf 0B280049, sp 0B280080, bp 0B280064, ip 7, >> BlockClosure>>on:do:} >> receiver: [] @ 12 in HRScheduleItem>>execute >> arg[0]: ProcessTermination >> arg[1]: [] @ 13 in BlockClosure>>newProcess >> >> {0B280048: cf 00000001, sp 0B28005C, bp 0B280048, ip 17, [] in >> BlockClosure>>newProcess} >> receiver: [] @ 12 in HRScheduleItem>>execute >> >> <Bottom of stack> >> >> ***** End of dump ***** |
Hi Ted,
I just got a walkback like your second one ("UndefinedObject does not understand #asInteger") in a Togo app as soon as I ran it ... before any windows were opened. Like you, the .Errors file blew out (to 98Mb) before I could terminate the process. The relevant section of the errors file is below. I think the problem is in UserLibrary>>messageBox:text:caption:style:icon:instance: If the process is not the main process, hWnd can end up being set to nil if there is no main window. This ends up causing an exception when this is set into the MSGBOXPARAMS struct, and causes a nasty error loop. One solution would be to guard for no active window and if so treat it as being TaskModal. I am not sure what the deal is with " ***Bad Array: 0000000". Possibly a problem in the VM? Also, I am not sure what the original problem was that triggered the error loop. I redeployed, only making the change to UserLibrary>>messageBox:text:caption:style:icon:instance: to check for a nil hWnd, and the app opened without a problem. Error file: {094402E8: cf 094402C9, sp 094402FC, bp 094402E4, ip 4, Object>>doesNotUnderstand:} receiver: nil arg[0]: Message selector: asInteger arguments: ***Bad Array: 00000000 {094402C8: cf 094402A1, sp 094402DC, bp 094402BC, ip 10, ByteArray>>retryDwordAtOffset:put:} receiver: a ByteArray arg[0]: 4 arg[1]: nil stack temp[0]: nil {094402A0: cf 0944027D, sp 094402B4, bp 09440298, ip 4, ByteArray>>dwordAtOffset:put:} receiver: a ByteArray arg[0]: 4 arg[1]: nil {0944027C: cf 0944025D, sp 09440290, bp 09440278, ip 6, MSGBOXPARAMS>>hwndOwner:} receiver: a MSGBOXPARAMS arg[0]: nil {0944025C: cf 0944020D, sp 09440270, bp 09440228, ip 73, UserLibrary>>messageBox:text:caption:style:icon:instance:} receiver: a UserLibrary arg[0]: nil arg[1]: 'Primitive Process>>primTerminate failed (0)' arg[2]: 'FSClient' arg[3]: 16 arg[4]: nil arg[5]: nil stack temp[0]: nil stack temp[1]: a MSGBOXPARAMS stack temp[2]: nil stack temp[3]: nil stack temp[4]: nil stack temp[5]: false stack temp[6]: nil Steve -- Steve Waring |
Free forum by Nabble | Edit this page |