diff options
Diffstat (limited to '')
-rw-r--r-- | src/common/break_points.cpp | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/src/common/break_points.cpp b/src/common/break_points.cpp index 023a485a4..e7d0d3e43 100644 --- a/src/common/break_points.cpp +++ b/src/common/break_points.cpp @@ -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(); - } -} |