[Vm-dev] Currently executing bytecodes?

Michael Haupt mhaupt at gmail.com
Fri Nov 9 12:13:00 UTC 2007


Hi,

On 11/9/07, André Wendt <andre.wendt at hpi.uni-potsdam.de> wrote:
> However, modifying the interpreter loop to:
>
> while (1) {
>         printNumtoFile(currentBytecode, foo->vmLogFile);
>         switch (currentBytecode) {
>         ..
>         }
> }
>
> didn't work: printNumtoFile() gets executed exactly once. I've debugged
> this with GDB: currentBytecode gets modified from within the CASE
> statements and the program never gets past the switch() statement.

that's most certainly because you are using a GNUified version of the
interpreter (right?). That one applies threading to the interpreter
implementation, so the loop body is not actually executed like a loop
body usually is. Instead, interpreter logic jumps directly to and fro
in the bytecode routines.

Best,

Michael


More information about the Vm-dev mailing list