| 249 | static constexpr DWORD64 kMaxTrustedSymbolOffset = 0x10000; |
| 250 | |
| 251 | static void print_module_fallback(FILE *out, HANDLE proc, void *addr, DWORD64 addr64) { |
| 252 | IMAGEHLP_MODULE64 modInfo; |
| 253 | memset(&modInfo, 0, sizeof(modInfo)); |
| 254 | modInfo.SizeOfStruct = sizeof(modInfo); |
| 255 | if (SymGetModuleInfo64(proc, addr64, &modInfo)) { |
| 256 | DWORD64 moduleOffset = addr64 - modInfo.BaseOfImage; |
| 257 | fprintf(out, " %p %s+0x%llx\n", |
| 258 | addr, modInfo.ModuleName, (unsigned long long)moduleOffset); |
| 259 | } else { |
| 260 | fprintf(out, " %p ?\n", addr); |
| 261 | } |
| 262 | } |
| 263 | |
| 264 | static void print_frame(FILE *out, void *addr) { |
| 265 | HANDLE proc = GetCurrentProcess(); |
no test coverage detected