common: Get rid of debug_interface.h
This is technically unused. Also removes TMemChecks because it relies on this. Whenever memory breakpoints are implemented for real, it should be designed to match the codebase debugging mechanisms.
This commit is contained in:
parent
506ab06238
commit
5dc9950772
4 changed files with 0 additions and 176 deletions
|
@ -2,7 +2,6 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "common/debug_interface.h"
|
||||
#include "common/break_points.h"
|
||||
#include "common/logging/log.h"
|
||||
|
||||
|
@ -101,92 +100,3 @@ void BreakPoints::Clear()
|
|||
|
||||
m_BreakPoints.clear();
|
||||
}
|
||||
|
||||
MemChecks::TMemChecksStr MemChecks::GetStrings() const
|
||||
{
|
||||
TMemChecksStr mcs;
|
||||
for (auto memcheck : m_MemChecks)
|
||||
{
|
||||
std::stringstream mc;
|
||||
mc << std::hex << memcheck.StartAddress;
|
||||
mc << " " << (memcheck.bRange ? memcheck.EndAddress : memcheck.StartAddress) << " "
|
||||
<< (memcheck.bRange ? "n" : "")
|
||||
<< (memcheck.OnRead ? "r" : "")
|
||||
<< (memcheck.OnWrite ? "w" : "")
|
||||
<< (memcheck.Log ? "l" : "")
|
||||
<< (memcheck.Break ? "p" : "");
|
||||
mcs.push_back(mc.str());
|
||||
}
|
||||
|
||||
return mcs;
|
||||
}
|
||||
|
||||
void MemChecks::AddFromStrings(const TMemChecksStr& mcs)
|
||||
{
|
||||
for (auto mcs_item : mcs)
|
||||
{
|
||||
TMemCheck mc;
|
||||
std::stringstream mcstr;
|
||||
mcstr << std::hex << mcs_item;
|
||||
mcstr >> mc.StartAddress;
|
||||
mc.bRange = mcs_item.find("n") != mcs_item.npos;
|
||||
mc.OnRead = mcs_item.find("r") != mcs_item.npos;
|
||||
mc.OnWrite = mcs_item.find("w") != mcs_item.npos;
|
||||
mc.Log = mcs_item.find("l") != mcs_item.npos;
|
||||
mc.Break = mcs_item.find("p") != mcs_item.npos;
|
||||
if (mc.bRange)
|
||||
mcstr >> mc.EndAddress;
|
||||
else
|
||||
mc.EndAddress = mc.StartAddress;
|
||||
Add(mc);
|
||||
}
|
||||
}
|
||||
|
||||
void MemChecks::Add(const TMemCheck& rMemoryCheck)
|
||||
{
|
||||
if (GetMemCheck(rMemoryCheck.StartAddress) == 0)
|
||||
m_MemChecks.push_back(rMemoryCheck);
|
||||
}
|
||||
|
||||
void MemChecks::Remove(u32 Address)
|
||||
{
|
||||
auto cond = [&Address](const TMemCheck& mc) { return mc.StartAddress == Address; };
|
||||
auto it = std::find_if(m_MemChecks.begin(), m_MemChecks.end(), cond);
|
||||
if (it != m_MemChecks.end())
|
||||
m_MemChecks.erase(it);
|
||||
}
|
||||
|
||||
TMemCheck *MemChecks::GetMemCheck(u32 address)
|
||||
{
|
||||
for (auto i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i)
|
||||
{
|
||||
if (i->bRange)
|
||||
{
|
||||
if (address >= i->StartAddress && address <= i->EndAddress)
|
||||
return &(*i);
|
||||
}
|
||||
else if (i->StartAddress == address)
|
||||
return &(*i);
|
||||
}
|
||||
|
||||
// none found
|
||||
return 0;
|
||||
}
|
||||
|
||||
void TMemCheck::Action(DebugInterface *debug_interface, u32 iValue, u32 addr,
|
||||
bool write, int size, u32 pc)
|
||||
{
|
||||
if ((write && OnWrite) || (!write && OnRead))
|
||||
{
|
||||
if (Log)
|
||||
{
|
||||
LOG_DEBUG(Debug_Breakpoint, "CHK %08x (%s) %s%i %0*x at %08x (%s)",
|
||||
pc, debug_interface->getDescription(pc).c_str(),
|
||||
write ? "Write" : "Read", size*8, size*2, iValue, addr,
|
||||
debug_interface->getDescription(addr).c_str()
|
||||
);
|
||||
}
|
||||
if (Break)
|
||||
debug_interface->breakNow();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue