44 m_map[vaddr] = symbol;
52 SymbolMap::const_iterator a = m_map.find(vaddr);
53 return a == m_map.end()?
"" : a->second;
58 SymbolMap::const_iterator a = m_map.lower_bound(vaddr);
59 if (a == m_map.end()) {
67 if (a != m_map.end() && vaddr == a->first)
70 if (a == m_map.begin())
77 ss.flags(std::ios::hex);
78 ss << a->second <<
"+0x" << (vaddr - a->first);
88 static void Test_SymbolRegistry_Basic()
108 static void Test_SymbolRegistry_BeforeFirst()
122 static void Test_SymbolRegistry_WithOffset()
136 static void Test_SymbolRegistry_AfterLast()
152 UNITTEST(Test_SymbolRegistry_Basic);
153 UNITTEST(Test_SymbolRegistry_BeforeFirst);
154 UNITTEST(Test_SymbolRegistry_WithOffset);
155 UNITTEST(Test_SymbolRegistry_AfterLast);
A registry for loaded symbols.
void AddSymbol(const string &symbol, uint64_t vaddr)
Adds a symbol to the registry.
#define UNITTESTS(class)
Helper for unit test case execution.
SymbolRegistry()
Constructs a SymbolRegistry.
string LookupAddress(uint64_t vaddr, bool allowOffset) const
Looks up an address.
void Clear()
Clears the registry.
static void Assert(const string &strFailMessage, bool condition)
Asserts that a boolean condition is correct.
addr & if(addr >=0x24 &&page !=NULL)
#define UNITTEST(functionname)
Helper for unit test case execution.