aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar archshift <admin@archshift.com>2014-08-12 03:44:12 -0700
committerGravatar archshift <admin@archshift.com>2014-08-12 03:48:11 -0700
commite3efc613fd84d62bdc370903c8bfef9743a9e593 (patch)
treee970bbb69333c0057e23c1de355e3cdeefb5a073
parent5a7c3ad1945c2829d03642b4526b9a066c73f06c (diff)
break_points: cleaned up, added `find_if`s
-rw-r--r--src/common/break_points.cpp62
-rw-r--r--src/common/break_points.h48
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 <sstream>
#include <algorithm>
-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
-