--- trunk/src/debugger.c 2007/10/08 16:19:11 18 +++ trunk/src/debugger.c 2007/10/08 16:19:23 20 @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * - * $Id: debugger.c,v 1.123 2005/10/26 14:37:01 debug Exp $ + * $Id: debugger.c,v 1.125 2005/11/13 00:14:06 debug Exp $ * * Single-step debugger. * @@ -556,9 +556,9 @@ (long long)mem->dev_length[i]); if (mem->dev_flags[i]) { printf(" ("); - if (mem->dev_flags[i] & MEM_DYNTRANS_OK) + if (mem->dev_flags[i] & DM_DYNTRANS_OK) printf("DYNTRANS R"); - if (mem->dev_flags[i] & MEM_DYNTRANS_WRITE_OK) + if (mem->dev_flags[i] & DM_DYNTRANS_WRITE_OK) printf("+W"); printf(")"); } @@ -1378,7 +1378,7 @@ */ static void debugger_cmd_trace(struct machine *m, char *cmd_line) { - int i, toggle = 1; + int toggle = 1; int previous_mode = old_show_trace_tree; if (cmd_line[0] != '\0') { @@ -1422,11 +1422,6 @@ if (m->bintrans_enable && old_show_trace_tree) printf("NOTE: the trace tree functionality doesn't " "work very well with bintrans!\n"); - - /* Clear translations: */ - for (i=0; incpus; i++) - if (m->cpus[i]->translation_cache != NULL) - cpu_create_or_reset_tc(m->cpus[i]); } @@ -2106,6 +2101,14 @@ return; } + /* + * Clear all dyntrans translations, because otherwise things would + * become to complex to keep in sync. + */ + for (i=0; incpus; i++) + if (debugger_machine->cpus[i]->translation_cache != NULL) + cpu_create_or_reset_tc(debugger_machine->cpus[i]); + exit_debugger = 0; while (!exit_debugger) {