I have a bunch of VAST 5.5.2 programs that run as windows NT services. They all use ObjectDumper to serialize what I call a status object. The object is saved to disk and with #unload:intoFile: and to a stream with unload:intoStream: and the stream is later sent as a string through a socket. All these programs have slightly different status objects (sub-classes) and have been doing this for years.
I recently changed one of the status objects by adding some things to it and now it gets a VMTrap when trying to dump it (see below). The trap doesn't help me much. There is also there is also a large VMTrap.img file that might help if I could read (understand) it. Is there a tool for reading the VMTrap.img file? I assume one of the objects I added to the status object is causing the problem but can't figure out which one. Any help or pointer are greatly appreciated.
Thanks, Lou
-Platform Information-------------------
VM Timestamp: 4.0,(NC) 4/23/2001
CPU Architecture: i386
OS Type: WIN32_NT
OS Version: 6.1 build 7600
-State Information----------------------
Handler=0x10059000
vmState=0x00000000
vmError=0x00000035
ExceptionCode=0xc0000005
ExceptionAddress=0x1002131b
ContextFlags=0x0001003f
Module=C:\Program
Files\Common
Files\Keystone
Software
Corp\bin\ESVM40.dll
Module_base_address=0x10000000
Offset_in_DLL=0x0002131b
EDI=0x0021108c
ESI=0x04a69d24
EAX=0x0000000e
EBX=0x00007ec6
ECX=0x00000001
EDX=0x00000001
EBP=0x001f6ca0
ESP=0x00c3fd1c
EIP=0x1002131b
-----------------------------------------
Image snapshot: vmtrap.img
-Walkback--------------------------------
EswDumpingStrategy>>dumpingReplacementFor:for:
EswClassBasedReplacer>>dumpingReplacementFor:
[] in ObjectDumper>>processAndReturnReplacementInDumpSegmentFor:
EswInstVarBasedReplacer>>processInstVar:of:
ObjectDumper>>handleSegmentOverflow
ObjectDumper>>handleFailReason:
ObjectDumper>>runWithPrimitive
ObjectDumper>>run
ObjectDumper>>dumpNonSpecialRoot:withReplacement:
[] in <optimized block> ObjectDumper>>dumpAllFrom:
ObjectDumper>>unload:
[] in Block>>valueWithErrorHandler:oldHandler:onReturnDo:
[] in <optimized block> Block>>when:do:exitWith:retryReturn:
[] in <optimized block> Block>>when:do:
[] in ObjectDumper>>unload:
[] in <optimized block> ObjectDumper>>unload:intoStream:
PivotServerTcpCommandData>>unload:
PivotBaseServer>>answerStatus:
PivotBaseServer>>initialSetUp
[] in <optimized block> PivotBaseServer>>tcpCommandReadLoop:
[] in Block>>valueWithErrorHandler:oldHandler:onReturnDo:
[] in <optimized block> Block>>when:do:exitWith:retryReturn:
[] in <optimized block> Block>>when:do:
[] in PivotBaseServer>>tcpCommandReadLoop:
[] in <optimized block> PivotBaseServer>>startTcpServer
[] in <optimized block> TobSocketsAbstractStreamServer>>basicStart:
[] in Block>>valueWithErrorHandler:oldHandler:onReturnDo:
[] in <optimized block> Block>>atEndOrWhenExceptionDo:
[] in <optimized block> TobSocketsAbstractStreamServer>>basicStart:
[] in Process>>executeBlock:withArguments:
[] in Process>>executeBlock:withArguments:
[] in <optimized block> Process>>newProcessOn:stackSize:withArguments:named: