C++ - Windows 上是否有类似 addr2line 的命令
C++ - Is there any command likes addr2line on Windows
如果 Windows 应用程序在没有 pdb 的情况下在用户设备上崩溃,它会产生这样的调用堆栈:
TestGame 0x000000003f790000 + 1c0c9f1
TestGame 0x000000003f790000 + 4b8a97c
TestGame 0x000000003f790000 + 4b8a4f1
TestGame 0x000000003f790000 + 3608413
TestGame 0x000000003f790000 + 3630e94
TestGame 0x000000003f790000 + 413a33e
TestGame 0x000000003f790000 + 4151d46
TestGame 0x000000003f790000 + 149c9e6
TestGame 0x000000003f790000 + 149cc90
TestGame 0x000000003f790000 + 419cddd
TestGame 0x000000003f790000 + 41ab698
TestGame 0x000000003f790000 + 3a909df
TestGame 0x000000003f790000 + 3a999ff
TestGame 0x000000003f790000 + 38fd369
TestGame 0x000000003f790000 + 338688
TestGame 0x000000003f790000 + 34827c
TestGame 0x000000003f790000 + 3482da
TestGame 0x000000003f790000 + 355e16
TestGame 0x000000003f790000 + 5169f2e
kernel32 0x0000000076ec0000 + 159cd
ntdll 0x0000000076fe0000 + 5383d
但我在开发设备上有 .PDB 文件,所以我想通过 .PDB 找到地址源代码行。我知道一个命令 addr2line
可以通过 Linux 上的 .so 文件寻址行,我想知道 Windows 上是否有像 addr2line
这样的命令。
在 windbg 中打开 TestGame.exe,您需要完全相同的二进制文件。中断执行。加载该版本的 .pdb。 运行 以下命令:
ln TestGame.exe+0x1c0c9f1
我碰巧找到了这个:https://drmemory.org/page_symquery.html
如果没有获取模块基地址,尝试VS'dumpbin.exe/headersxxx.exe获取镜像基
如果 Windows 应用程序在没有 pdb 的情况下在用户设备上崩溃,它会产生这样的调用堆栈:
TestGame 0x000000003f790000 + 1c0c9f1
TestGame 0x000000003f790000 + 4b8a97c
TestGame 0x000000003f790000 + 4b8a4f1
TestGame 0x000000003f790000 + 3608413
TestGame 0x000000003f790000 + 3630e94
TestGame 0x000000003f790000 + 413a33e
TestGame 0x000000003f790000 + 4151d46
TestGame 0x000000003f790000 + 149c9e6
TestGame 0x000000003f790000 + 149cc90
TestGame 0x000000003f790000 + 419cddd
TestGame 0x000000003f790000 + 41ab698
TestGame 0x000000003f790000 + 3a909df
TestGame 0x000000003f790000 + 3a999ff
TestGame 0x000000003f790000 + 38fd369
TestGame 0x000000003f790000 + 338688
TestGame 0x000000003f790000 + 34827c
TestGame 0x000000003f790000 + 3482da
TestGame 0x000000003f790000 + 355e16
TestGame 0x000000003f790000 + 5169f2e
kernel32 0x0000000076ec0000 + 159cd
ntdll 0x0000000076fe0000 + 5383d
但我在开发设备上有 .PDB 文件,所以我想通过 .PDB 找到地址源代码行。我知道一个命令 addr2line
可以通过 Linux 上的 .so 文件寻址行,我想知道 Windows 上是否有像 addr2line
这样的命令。
在 windbg 中打开 TestGame.exe,您需要完全相同的二进制文件。中断执行。加载该版本的 .pdb。 运行 以下命令:
ln TestGame.exe+0x1c0c9f1
我碰巧找到了这个:https://drmemory.org/page_symquery.html 如果没有获取模块基地址,尝试VS'dumpbin.exe/headersxxx.exe获取镜像基