#include "extensions/cprog.hpp"
#include "extensions/cuart.hpp"
+#include <signal.h>
+
#include "SReadline/SReadline.h"
using namespace swift;
bool exitProg = false;
+void signalCpuBreak(int)
+{
+ global_cpu->breakNext();
+}
+
void doExit(const vector<string>&)
{
exitProg = true;
while(1) {
try {
auto breakp = find(breakpoints.begin(), breakpoints.end(), global_cpu->getNextPC());
- if(breakp == breakpoints.end() || ignoreBreak) {
+ if((breakp == breakpoints.end() || ignoreBreak) && !global_cpu->shouldBreak() ) {
global_cpu->tick();
ignoreBreak = false;
}
global_cpu = &cpu;
+ signal(SIGINT, signalCpuBreak);
Iinstr::setCPU(&cpu);
Iext::setCPU(&cpu);