Added non-debug ebreak intercept

master
vhaudiquet 1 year ago
parent 21c85d0bec
commit cdf2ed883a
  1. 20
      src/main.c

@ -33,7 +33,27 @@ int main(int argc, char** argv)
pthread_create(&cpu0_thread, 0, (void*) cpu_loop, cpu0); pthread_create(&cpu0_thread, 0, (void*) cpu_loop, cpu0);
// Wait for the simulation to end // Wait for the simulation to end
if(gdbstub)
{
pthread_join(cpu0_thread, 0); pthread_join(cpu0_thread, 0);
}
else
{
while(1)
{
pthread_mutex_lock(&cpu0_mutex);
pthread_cond_wait(&cpu0->sim_condition, &cpu0_mutex);
if(!cpu0->sim_ticks_left && cpu0->sim_ticks_done > 0)
{
// Simulation ended
break;
}
pthread_mutex_unlock(&cpu0_mutex);
}
fprintf(stderr, "Simulation ended in a non-debug environment\n");
return cpu0->regs.a0;
}
return 0; return 0;
} }

Loading…
Cancel
Save