Added non-debug ebreak intercept
This commit is contained in:
		
							
								
								
									
										20
									
								
								src/main.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								src/main.c
									
									
									
									
									
								
							@@ -33,7 +33,27 @@ int main(int argc, char** argv)
 | 
			
		||||
	pthread_create(&cpu0_thread, 0, (void*) cpu_loop, cpu0);
 | 
			
		||||
 | 
			
		||||
	// Wait for the simulation to end
 | 
			
		||||
	if(gdbstub)
 | 
			
		||||
	{
 | 
			
		||||
		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;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user