MCPcopy Create free account
hub / github.com/decaf-emu/decaf-emu / formatStackTrace

Function formatStackTrace

src/common/src/platform_win_stacktrace.cpp:41–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39}
40
41std::string
42formatStackTrace(StackTrace *trace)
43{
44 auto process = GetCurrentProcess();
45 static bool symInitialise = false;
46
47 if (!symInitialise) {
48 SymInitialize(process, NULL, TRUE);
49 symInitialise = true;
50 }
51
52 auto symbol = std::make_unique<MySymbol>();
53 symbol->MaxNameLen = MAX_SYM_NAME;
54 symbol->SizeOfStruct = sizeof(SYMBOL_INFO);
55
56 fmt::memory_buffer out;
57
58 for (auto i = 0u; i < trace->frames; ++i) {
59 SymFromAddr(process, (DWORD64)trace->data[i], 0, symbol.get());
60 fmt::format_to(std::back_inserter(out), "{}: {} - 0x{:X}x\n",
61 trace->frames - i - 1,
62 (const char*)symbol->Name,
63 symbol->Address);
64 }
65
66 return out.data();
67}
68
69void
70printStackTrace(StackTrace *trace)

Callers 3

assertFailedFunction · 0.70
hostFaultWithStackTraceFunction · 0.70
printStackTraceFunction · 0.70

Calls 2

getMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected