Skip to content

Commit 0c2e200

Browse files
authored
Merge pull request #2465 from Wc4ever/fix/debugger-symbol-search
DebugTarget::FindSymbolAddr: search all loaded modules, not just the …
2 parents 178f8db + b2f38d0 commit 0c2e200

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

IDEHelper/DebugTarget.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -450,17 +450,21 @@ bool DebugTarget::FindSymbolAt(addr_target addr, String* outSymbol, addr_target*
450450

451451
addr_target DebugTarget::FindSymbolAddr(const StringImpl& name)
452452
{
453-
//TODO: Search through all modules?
454-
455-
auto dbgModule = GetMainDbgModule();
456-
if (dbgModule != NULL)
453+
auto mainModule = GetMainDbgModule();
454+
if (mainModule != NULL)
455+
{
456+
auto entry = mainModule->mSymbolNameMap.Find(name.c_str());
457+
if (entry != NULL)
458+
return entry->mValue->mAddress;
459+
}
460+
for (auto dbgModule : mDbgModules)
457461
{
462+
if (dbgModule == mainModule)
463+
continue;
464+
dbgModule->ParseSymbolData();
458465
auto entry = dbgModule->mSymbolNameMap.Find(name.c_str());
459-
if (entry!= NULL)
460-
{
461-
DbgSymbol* dwSymbol = entry->mValue;
462-
return dwSymbol->mAddress;
463-
}
466+
if (entry != NULL)
467+
return entry->mValue->mAddress;
464468
}
465469
return (addr_target)-1;
466470
}

0 commit comments

Comments
 (0)