void WSwanDBG_AddBreakPoint(int type, unsigned int A1, unsigned int A2, bool logical) { WSWAN_BPOINT tmp; tmp.A[0] = A1; tmp.A[1] = A2; tmp.type =type; tmp.logical = logical; if(type == BPOINT_READ) BreakPointsRead.push_back(tmp); else if(type == BPOINT_WRITE) BreakPointsWrite.push_back(tmp); else if(type == BPOINT_IO_READ) BreakPointsIORead.push_back(tmp); else if(type == BPOINT_IO_WRITE) BreakPointsIOWrite.push_back(tmp); else if(type == BPOINT_PC) BreakPointsPC.push_back(tmp); else if(type == BPOINT_AUX_READ) BreakPointsAux0Read.push_back(tmp); else if(type == BPOINT_AUX_WRITE) BreakPointsAux0Write.push_back(tmp); RedoDH(); }
static void EnableBranchTrace(bool enable) { BTEnabled = enable; if(!enable) { BTIndex = 0; memset(BTEntries, 0, sizeof(BTEntries)); } RedoDH(); }
void WSwanDBG_FlushBreakPoints(int type) { if(type == BPOINT_READ) BreakPointsRead.clear(); else if(type == BPOINT_WRITE) BreakPointsWrite.clear(); else if(type == BPOINT_IO_READ) BreakPointsIORead.clear(); else if(type == BPOINT_IO_WRITE) BreakPointsIOWrite.clear(); else if(type == BPOINT_PC) BreakPointsPC.clear(); else if(type == BPOINT_AUX_READ) BreakPointsAux0Read.clear(); else if(type == BPOINT_AUX_WRITE) BreakPointsAux0Write.clear(); RedoDH(); }
void WSwanDBG_SetCPUCallback(void (*callb)(uint32 PC)) { CPUHook = callb; RedoDH(); }