[Vm-dev] process state of core dump
rdrvr.biz at gmail.com
Wed Apr 15 01:39:42 UTC 2009
I'm still on my quixotic quest to recover a working image from a core
dump. Currently, the interpreter is crashing on my image because
there is no suspended context.
(from gnu-interp.c initializeInterpreter())
/* begin loadInitialContext */
sched = longAt(((longAt((foo->specialObjectsOop +
BaseHeaderSize) + (SchedulerAssociation << ShiftForWord))) +
BaseHeaderSize) + (ValueIndex << ShiftForWord));
printf("sched: %.8X.\n", sched);
proc = longAt((sched + BaseHeaderSize) + (ActiveProcessIndex
printf("proc: %.8X.\n", proc);
foo->activeContext = longAt((proc + BaseHeaderSize) +
(SuspendedContextIndex << ShiftForWord));
printf("activeContext: %.8X.\n", foo->activeContext);
printf("About to beRootIfOld.\n");
if ((((usqInt) foo->activeContext)) < (((usqInt) foo-
As output, I get:
About to beRootIfOld.
If I am reading this data correctly, it is saying there is no
suspended context. Which would make sense (to me) since this core
dump was taken at some random point in the interpreter's machinations.
So, what are my options? (Do I have any?) Can I fake or force a
suspended context? Am I reading the data wrong?
Red River Software
More information about the Vm-dev