mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48:20 +02:00
Displaying main module instead of hot object name in callstack
This commit is contained in:
parent
092df41b37
commit
d28a804c18
1 changed files with 29 additions and 19 deletions
|
@ -6968,7 +6968,7 @@ String WinDebugger::DbgTypedValueToString(const DbgTypedValue& origTypedValue, c
|
||||||
{
|
{
|
||||||
auto dbgModule = mDebugTarget->FindDbgModuleForAddress(funcPtr);
|
auto dbgModule = mDebugTarget->FindDbgModuleForAddress(funcPtr);
|
||||||
if (dbgModule != NULL)
|
if (dbgModule != NULL)
|
||||||
demangledName += dbgModule->mDisplayName + "!";
|
demangledName += dbgModule->GetLinkedModule()->mDisplayName + "!";
|
||||||
demangledName += StrFormat("0x%@", funcPtr);
|
demangledName += StrFormat("0x%@", funcPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10092,10 +10092,11 @@ String WinDebugger::GetThreadInfo()
|
||||||
{
|
{
|
||||||
if (subProgram->mLineInfo != NULL)
|
if (subProgram->mLineInfo != NULL)
|
||||||
{
|
{
|
||||||
auto module = subProgram->mCompileUnit->mDbgModule;
|
DbgModule* module = subProgram->mCompileUnit->mDbgModule;
|
||||||
if (module->mDisplayName.length() > 0)
|
DbgModule* linkedModule = module->GetLinkedModule();
|
||||||
|
if (linkedModule->mDisplayName.length() > 0)
|
||||||
{
|
{
|
||||||
locString = module->mDisplayName + "!" + subProgram->ToString();
|
locString = linkedModule->mDisplayName + "!" + subProgram->ToString();
|
||||||
if (!hadThreadName)
|
if (!hadThreadName)
|
||||||
threadName = module->mDisplayName + " thread";
|
threadName = module->mDisplayName + " thread";
|
||||||
}
|
}
|
||||||
|
@ -10108,17 +10109,18 @@ String WinDebugger::GetThreadInfo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto module = mDebugTarget->FindDbgModuleForAddress(registers.GetPC());
|
DbgModule* module = mDebugTarget->FindDbgModuleForAddress(registers.GetPC());
|
||||||
if (module == NULL)
|
if (module == NULL)
|
||||||
{
|
{
|
||||||
isInvalid = true;
|
isInvalid = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DbgModule* linkedModule = module->GetLinkedModule();
|
||||||
appendAddr = (addr_target)registers.GetPC();
|
appendAddr = (addr_target)registers.GetPC();
|
||||||
locString = module->mDisplayName + "!" + EncodeDataPtr((addr_target)registers.GetPC(), true);
|
locString = linkedModule->mDisplayName + "!" + EncodeDataPtr((addr_target)registers.GetPC(), true);
|
||||||
if (!hadThreadName)
|
if (!hadThreadName)
|
||||||
threadName = module->mDisplayName + " thread";
|
threadName = linkedModule->mDisplayName + " thread";
|
||||||
|
|
||||||
if ((mActiveThread == mExplicitStopThread) && (mActiveBreakpoint != NULL))
|
if ((mActiveThread == mExplicitStopThread) && (mActiveBreakpoint != NULL))
|
||||||
{
|
{
|
||||||
|
@ -10152,9 +10154,12 @@ String WinDebugger::GetThreadInfo()
|
||||||
DbgModule* dwarf;
|
DbgModule* dwarf;
|
||||||
if (mDebugTarget->FindSymbolAt(appendAddr, &symbolName, &offset, &dwarf))
|
if (mDebugTarget->FindSymbolAt(appendAddr, &symbolName, &offset, &dwarf))
|
||||||
{
|
{
|
||||||
|
DbgModule* linkedModule = dwarf->GetLinkedModule();
|
||||||
String demangledName = BfDemangler::Demangle(symbolName, DbgLanguage_Unknown);
|
String demangledName = BfDemangler::Demangle(symbolName, DbgLanguage_Unknown);
|
||||||
if (!dwarf->mDisplayName.empty())
|
if (!linkedModule->mDisplayName.empty())
|
||||||
demangledName = dwarf->mDisplayName + "!" + demangledName;
|
{
|
||||||
|
demangledName = linkedModule->mDisplayName + "!" + demangledName;
|
||||||
|
}
|
||||||
locString = demangledName + StrFormat("+0x%X", offset);
|
locString = demangledName + StrFormat("+0x%X", offset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10733,8 +10738,9 @@ String WinDebugger::GetStackFrameInfo(int stackFrameIdx, intptr* addr, String* o
|
||||||
|
|
||||||
String name = wdStackFrame->mSubProgram->ToString();
|
String name = wdStackFrame->mSubProgram->ToString();
|
||||||
DbgModule* dbgModule = wdStackFrame->mSubProgram->mCompileUnit->mDbgModule;
|
DbgModule* dbgModule = wdStackFrame->mSubProgram->mCompileUnit->mDbgModule;
|
||||||
if (!dbgModule->mDisplayName.empty())
|
DbgModule* linkedModule = dbgModule->GetLinkedModule();
|
||||||
name = dbgModule->mDisplayName + "!" + name;
|
if (!linkedModule->mDisplayName.empty())
|
||||||
|
name = linkedModule->mDisplayName + "!" + name;
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10790,8 +10796,9 @@ String WinDebugger::GetStackFrameInfo(int stackFrameIdx, intptr* addr, String* o
|
||||||
}
|
}
|
||||||
|
|
||||||
DbgModule* dbgModule = dwSubprogram->mCompileUnit->mDbgModule;
|
DbgModule* dbgModule = dwSubprogram->mCompileUnit->mDbgModule;
|
||||||
if (!dbgModule->mDisplayName.empty())
|
DbgModule* linkedModule = dbgModule->GetLinkedModule();
|
||||||
demangledName = dbgModule->mDisplayName + "!" + demangledName;
|
if (!linkedModule->mDisplayName.empty())
|
||||||
|
demangledName = linkedModule->mDisplayName + "!" + demangledName;
|
||||||
|
|
||||||
if ((dwSubprogram->mHotReplaceKind == DbgSubprogram::HotReplaceKind_Replaced) || (dwSubprogram->mHotReplaceKind == DbgSubprogram::HotReplaceKind_Invalid))
|
if ((dwSubprogram->mHotReplaceKind == DbgSubprogram::HotReplaceKind_Replaced) || (dwSubprogram->mHotReplaceKind == DbgSubprogram::HotReplaceKind_Invalid))
|
||||||
demangledName = "#" + demangledName;
|
demangledName = "#" + demangledName;
|
||||||
|
@ -10848,23 +10855,26 @@ String WinDebugger::GetStackFrameInfo(int stackFrameIdx, intptr* addr, String* o
|
||||||
return outName;
|
return outName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DbgModule* linkedModule = dbgModule->GetLinkedModule();
|
||||||
String demangledName = BfDemangler::Demangle(symbolName, DbgLanguage_Unknown);
|
String demangledName = BfDemangler::Demangle(symbolName, DbgLanguage_Unknown);
|
||||||
if (!dbgModule->mDisplayName.empty())
|
if (!linkedModule->mDisplayName.empty())
|
||||||
demangledName = dbgModule->mDisplayName + "!" + demangledName;
|
demangledName = linkedModule->mDisplayName + "!" + demangledName;
|
||||||
return demangledName + StrFormat("+0x%X", offset);
|
return demangledName + StrFormat("+0x%X", offset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DbgModule* dbgModule = mDebugTarget->FindDbgModuleForAddress(pcAddress);
|
DbgModule* dbgModule = mDebugTarget->FindDbgModuleForAddress(pcAddress);
|
||||||
|
DbgModule* linkedModule = NULL;
|
||||||
if (dbgModule != NULL)
|
if (dbgModule != NULL)
|
||||||
{
|
{
|
||||||
|
linkedModule = dbgModule->GetLinkedModule();
|
||||||
if (dbgModule->HasPendingDebugInfo())
|
if (dbgModule->HasPendingDebugInfo())
|
||||||
*outFlags |= FrameFlags_HasPendingDebugInfo;
|
*outFlags |= FrameFlags_HasPendingDebugInfo;
|
||||||
}
|
}
|
||||||
String outName = EncodeDataPtr(pcAddress, true);
|
String outName = EncodeDataPtr(pcAddress, true);
|
||||||
if ((dbgModule != NULL) && (!dbgModule->mDisplayName.empty()))
|
if ((linkedModule != NULL) && (!linkedModule->mDisplayName.empty()))
|
||||||
outName = dbgModule->mDisplayName + "!" + outName;
|
outName = linkedModule->mDisplayName + "!" + outName;
|
||||||
return outName;
|
return outName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11130,7 +11140,7 @@ String WinDebugger::DisassembleAtRaw(intptr inAddress)
|
||||||
{
|
{
|
||||||
outSymbol = BfDemangler::Demangle(outSymbol, DbgLanguage_Unknown);
|
outSymbol = BfDemangler::Demangle(outSymbol, DbgLanguage_Unknown);
|
||||||
if ((symDWARF != NULL) && (!symDWARF->mDisplayName.empty()))
|
if ((symDWARF != NULL) && (!symDWARF->mDisplayName.empty()))
|
||||||
outSymbol = symDWARF->mDisplayName + "!" + outSymbol;
|
outSymbol = symDWARF->GetLinkedModule()->mDisplayName + "!" + outSymbol;
|
||||||
result += "T " + outSymbol + ":\n";
|
result += "T " + outSymbol + ":\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue