[Debugger] Remove temporary out of read/write Breakpoints
This commit is contained in:
parent
95358b1ac1
commit
deada521bb
|
@ -21,21 +21,21 @@ CBreakpoints::CBreakpoints()
|
|||
{
|
||||
}
|
||||
|
||||
bool CBreakpoints::RBPAdd(uint32_t address, bool bTemporary)
|
||||
bool CBreakpoints::RBPAdd(uint32_t address)
|
||||
{
|
||||
if (!ReadBPExists(address))
|
||||
{
|
||||
m_ReadMem.insert(breakpoints_t::value_type(address, bTemporary));
|
||||
m_ReadMem.insert(breakpoints_t::value_type(address, false));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CBreakpoints::WBPAdd(uint32_t address, bool bTemporary)
|
||||
bool CBreakpoints::WBPAdd(uint32_t address)
|
||||
{
|
||||
if (!WriteBPExists(address))
|
||||
if (!WriteBPExists8(address))
|
||||
{
|
||||
m_WriteMem.insert(breakpoints_t::value_type(address, bTemporary));
|
||||
m_WriteMem.insert(breakpoints_t::value_type(address, false));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -87,17 +87,17 @@ void CBreakpoints::RemoveExecution(uint32_t address)
|
|||
}
|
||||
}
|
||||
|
||||
void CBreakpoints::RBPToggle(uint32_t address, bool bTemporary)
|
||||
void CBreakpoints::RBPToggle(uint32_t address)
|
||||
{
|
||||
if (RBPAdd(address, bTemporary) == false)
|
||||
if (RBPAdd(address) == false)
|
||||
{
|
||||
RBPRemove(address);
|
||||
}
|
||||
}
|
||||
|
||||
void CBreakpoints::WBPToggle(uint32_t address, bool bTemporary)
|
||||
void CBreakpoints::WBPToggle(uint32_t address)
|
||||
{
|
||||
if (WBPAdd(address, bTemporary) == false)
|
||||
if (WBPAdd(address) == false)
|
||||
{
|
||||
WBPRemove(address);
|
||||
}
|
||||
|
@ -133,37 +133,21 @@ void CBreakpoints::BPClear()
|
|||
EBPClear();
|
||||
}
|
||||
|
||||
CBreakpoints::BPSTATE CBreakpoints::ReadBPExists(uint32_t address, bool bRemoveTemp)
|
||||
CBreakpoints::BPSTATE CBreakpoints::ReadBPExists(uint32_t address)
|
||||
{
|
||||
breakpoints_t::const_iterator itr = m_ReadMem.find(address);
|
||||
if (itr != m_ReadMem.end())
|
||||
{
|
||||
if (itr->second)
|
||||
{
|
||||
if (bRemoveTemp)
|
||||
{
|
||||
m_ReadMem.erase(itr);
|
||||
}
|
||||
return BP_SET_TEMP;
|
||||
}
|
||||
return BP_SET;
|
||||
}
|
||||
return BP_NOT_SET;
|
||||
}
|
||||
|
||||
CBreakpoints::BPSTATE CBreakpoints::WriteBPExists(uint32_t address, bool bRemoveTemp)
|
||||
CBreakpoints::BPSTATE CBreakpoints::WriteBPExists8(uint32_t address)
|
||||
{
|
||||
breakpoints_t::const_iterator itr = m_WriteMem.find(address);
|
||||
if (itr != m_WriteMem.end())
|
||||
{
|
||||
if (itr->second)
|
||||
{
|
||||
if (bRemoveTemp)
|
||||
{
|
||||
m_ReadMem.erase(itr);
|
||||
}
|
||||
return BP_SET_TEMP;
|
||||
}
|
||||
return BP_SET;
|
||||
}
|
||||
return BP_NOT_SET;
|
||||
|
|
|
@ -32,18 +32,18 @@ public:
|
|||
const breakpoints_t & WriteMem(void) const { return m_WriteMem; }
|
||||
const breakpoints_t & Execution(void) const { return m_Execution; }
|
||||
|
||||
BPSTATE ReadBPExists(uint32_t address, bool bRemoveTemp = false);
|
||||
BPSTATE WriteBPExists(uint32_t address, bool bRemoveTemp = false);
|
||||
BPSTATE ReadBPExists(uint32_t address);
|
||||
BPSTATE WriteBPExists8(uint32_t address);
|
||||
BPSTATE ExecutionBPExists(uint32_t address, bool bRemoveTemp = false);
|
||||
|
||||
bool RBPAdd(uint32_t address, bool bTemporary = false);
|
||||
bool RBPAdd(uint32_t address);
|
||||
void RBPRemove(uint32_t address);
|
||||
void RBPToggle(uint32_t address, bool bTemporary = false);
|
||||
void RBPToggle(uint32_t address);
|
||||
void RBPClear();
|
||||
|
||||
bool WBPAdd(uint32_t address, bool bTemporary = false);
|
||||
bool WBPAdd(uint32_t address);
|
||||
void WBPRemove(uint32_t address);
|
||||
void WBPToggle(uint32_t address, bool bTemporary = false);
|
||||
void WBPToggle(uint32_t address);
|
||||
void WBPClear();
|
||||
|
||||
bool AddExecution(uint32_t address, bool bTemporary = false);
|
||||
|
|
|
@ -718,7 +718,7 @@ void CDebugMemoryView::SelectColors(uint32_t vaddr, bool changed, COLORREF& bgCo
|
|||
CSymbols::LeaveCriticalSection();
|
||||
|
||||
bool bHaveReadBP = m_Breakpoints->ReadBPExists(vaddr) == CBreakpoints::BP_SET;
|
||||
bool bHaveWriteBP = m_Breakpoints->WriteBPExists(vaddr) == CBreakpoints::BP_SET;
|
||||
bool bHaveWriteBP = m_Breakpoints->WriteBPExists8(vaddr) == CBreakpoints::BP_SET;
|
||||
|
||||
fgHiColor = RGB(0x00, 0x00, 0x00);
|
||||
|
||||
|
|
|
@ -414,7 +414,7 @@ void CDebuggerUI::CPUStepStarted()
|
|||
{
|
||||
m_ScriptSystem->HookCPUWrite()->InvokeByParamInRange(memoryAddress);
|
||||
|
||||
if (m_Breakpoints->WriteBPExists(memoryAddress))
|
||||
if (m_Breakpoints->WriteBPExists8(memoryAddress))
|
||||
{
|
||||
goto breakpoint_hit;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue