9namespace hedgedev::csl::diag
21 SymbolInfo.pAddress = (
void*)in_pSymbolInfo->Address;
23 if (in_pSymbolInfo->NameLen > 0)
24 SymbolInfo.Name = std::string(in_pSymbolInfo->Name, in_pSymbolInfo->NameLen);
26 SymbolInfo.Flags = in_pSymbolInfo->Flags;
27 SymbolInfo.Displacement = in_displacement;
37 LineInfo.SourceFilePath = in_pLineInfo->FileName;
38 LineInfo.pAddress = (
void*)in_pLineInfo->Address;
39 LineInfo.Row = in_pLineInfo->LineNumber;
46 std::stringstream result{};
48 const auto& rModulePath = GetModulePath();
50 if (!rModulePath.empty())
51 result << rModulePath.filename().string() <<
'!';
53 if (!SymbolInfo.Name.empty())
55 result << SymbolInfo.Name;
57 if (SymbolInfo.Displacement > 0)
58 result <<
'+' << ut::string::ToHex<std::string>(SymbolInfo.Displacement, 2);
Definition StackFrameWin32.h:12
std::string ToString() const
Definition StackFrameWin32.h:44
void SetLineInfo(IMAGEHLP_LINE *in_pLineInfo)
Definition StackFrameWin32.h:32
void SetSymbolInfo(SYMBOL_INFO *in_pSymbolInfo, size_t in_displacement)
Definition StackFrameWin32.h:14
Definition StackFrame.h:11
void * pModuleBase
Definition StackFrame.h:21
bool m_hasLineInfo
Definition StackFrame.h:17
bool m_hasSymbolInfo
Definition StackFrame.h:16
void * pProgramCounter
Definition StackFrame.h:20