From e3efc613fd84d62bdc370903c8bfef9743a9e593 Mon Sep 17 00:00:00 2001 From: archshift Date: Tue, 12 Aug 2014 03:44:12 -0700 Subject: break_points: cleaned up, added `find_if`s --- src/common/break_points.cpp | 62 ++++++++++++++++++++------------------------- src/common/break_points.h | 48 +++++++++++++++++------------------ 2 files changed, 51 insertions(+), 59 deletions(-) diff --git a/src/common/break_points.cpp b/src/common/break_points.cpp index 4e04a06f..392b8530 100644 --- a/src/common/break_points.cpp +++ b/src/common/break_points.cpp @@ -9,19 +9,21 @@ #include #include -bool BreakPoints::IsAddressBreakPoint(u32 _iAddress) +bool BreakPoints::IsAddressBreakPoint(u32 iAddress) { - for (auto breakpoint : m_BreakPoints) - if (breakpoint.iAddress == _iAddress) - return true; + auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress; }; + auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond); + if (it != m_BreakPoints.end()) + return true; return false; } -bool BreakPoints::IsTempBreakPoint(u32 _iAddress) +bool BreakPoints::IsTempBreakPoint(u32 iAddress) { - for (auto breakpoint : m_BreakPoints) - if (breakpoint.iAddress == _iAddress && breakpoint.bTemporary) - return true; + auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress && bp.bTemporary; }; + auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond); + if (it != m_BreakPoints.end()) + return true; return false; } @@ -83,16 +85,10 @@ void BreakPoints::Add(u32 em_address, bool temp) void BreakPoints::Remove(u32 em_address) { - for (auto i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) - { - if (i->iAddress == em_address) - { - m_BreakPoints.erase(i); - //if (jit) - // jit->GetBlockCache()->InvalidateICache(em_address, 4); - return; - } - } + auto cond = [&em_address](const TBreakPoint& bp) { return bp.iAddress == em_address; }; + auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond); + if (it != m_BreakPoints.end()) + m_BreakPoints.erase(it); } void BreakPoints::Clear() @@ -106,7 +102,7 @@ void BreakPoints::Clear() // } // ); //} - + m_BreakPoints.clear(); } @@ -118,10 +114,10 @@ MemChecks::TMemChecksStr MemChecks::GetStrings() const 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.bRange ? "n" : "") + << (memcheck.OnRead ? "r" : "") + << (memcheck.OnWrite ? "w" : "") + << (memcheck.Log ? "l" : "") << (memcheck.Break ? "p" : ""); mcs.push_back(mc.str()); } @@ -150,22 +146,18 @@ void MemChecks::AddFromStrings(const TMemChecksStr& mcs) } } -void MemChecks::Add(const TMemCheck& _rMemoryCheck) +void MemChecks::Add(const TMemCheck& rMemoryCheck) { - if (GetMemCheck(_rMemoryCheck.StartAddress) == 0) - m_MemChecks.push_back(_rMemoryCheck); + if (GetMemCheck(rMemoryCheck.StartAddress) == 0) + m_MemChecks.push_back(rMemoryCheck); } -void MemChecks::Remove(u32 _Address) +void MemChecks::Remove(u32 Address) { - for (auto i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i) - { - if (i->StartAddress == _Address) - { - m_MemChecks.erase(i); - return; - } - } + 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) diff --git a/src/common/break_points.h b/src/common/break_points.h index 46df3466..da14ca7f 100644 --- a/src/common/break_points.h +++ b/src/common/break_points.h @@ -14,32 +14,33 @@ class DebugInterface; struct TBreakPoint { - u32 iAddress; - bool bOn; - bool bTemporary; + u32 iAddress; + bool bOn; + bool bTemporary; }; struct TMemCheck { - TMemCheck() { - numHits = 0; - StartAddress = EndAddress = 0; - bRange = OnRead = OnWrite = Log = Break = false; - } - u32 StartAddress; - u32 EndAddress; + TMemCheck(): + StartAddress(0), EndAddress(0), + bRange(false), OnRead(false), OnWrite(false), + Log(false), Break(false), numHits(0) + { } - bool bRange; + u32 StartAddress; + u32 EndAddress; - bool OnRead; - bool OnWrite; + bool bRange; - bool Log; - bool Break; + bool OnRead; + bool OnWrite; - u32 numHits; + bool Log; + bool Break; - void Action(DebugInterface *dbg_interface, u32 _iValue, u32 addr, + u32 numHits; + + void Action(DebugInterface *dbg_interface, u32 iValue, u32 addr, bool write, int size, u32 pc); }; @@ -56,22 +57,22 @@ public: void AddFromStrings(const TBreakPointsStr& bps); // is address breakpoint - bool IsAddressBreakPoint(u32 _iAddress); - bool IsTempBreakPoint(u32 _iAddress); + bool IsAddressBreakPoint(u32 iAddress); + bool IsTempBreakPoint(u32 iAddress); // Add BreakPoint void Add(u32 em_address, bool temp=false); void Add(const TBreakPoint& bp); // Remove Breakpoint - void Remove(u32 _iAddress); + void Remove(u32 iAddress); void Clear(); - void DeleteByAddress(u32 _Address); + void DeleteByAddress(u32 Address); private: TBreakPoints m_BreakPoints; - u32 m_iBreakOnCount; + u32 m_iBreakOnCount; }; @@ -89,7 +90,7 @@ public: TMemChecksStr GetStrings() const; void AddFromStrings(const TMemChecksStr& mcs); - void Add(const TMemCheck& _rMemoryCheck); + void Add(const TMemCheck& rMemoryCheck); // memory breakpoint TMemCheck *GetMemCheck(u32 address); @@ -99,4 +100,3 @@ public: }; #endif - -- cgit v1.2.3