diff --git a/ijvm.c b/ijvm.c index 4827882..ca59dcb 100644 --- a/ijvm.c +++ b/ijvm.c @@ -393,20 +393,23 @@ main (int argc, char *argv[]) printf ("IJVM Trace of %s %s\n", argv[1], time_string); } - /* This is the interpreter main loop. It essentially excecutes - * ijvm_execute_opcode until the program terminates (which is when - * an ireturn from main is encountered). In each step, the - * instruction, its arguments and the top 8 elements on the stack - * are printed. */ +#ifndef PRINTSTACK +#define PRINTSTACK (20) +#endif + + /* This is the interpreter main loop. It essentially excecutes + * ijvm_execute_opcode until the program terminates (which is when an ireturn + * from main is encountered). In each step, the instruction, its arguments + * and the top PRINTSTACK elements on the stack are printed. */ if (verbose) - ijvm_print_stack (i->stack + i->sp, MIN (i->sp - i->initial_sp, 8), TRUE); + ijvm_print_stack (i->stack + i->sp, MIN (i->sp - i->initial_sp, PRINTSTACK), TRUE); while (ijvm_active (i)) { if (verbose) ijvm_print_snapshot (i->method + i->pc); ijvm_execute_opcode (i); if (verbose) - ijvm_print_stack (i->stack + i->sp, MIN (i->sp - i->initial_sp, 8), FALSE); + ijvm_print_stack (i->stack + i->sp, MIN (i->sp - i->initial_sp, PRINTSTACK), FALSE); } ijvm_print_result (i);