C ++-Windows上是否有类似addr2line的命令

时间:2019-01-03 13:06:14

标签: c++ debugging crash addr2line

如果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地址行。我知道在Linux上可以通过.so文件寻址的命令addr2line,我想知道在Windows上是否有像addr2line这样的命令。

1 个答案:

答案 0 :(得分:0)

在windbg中打开TestGame.exe,您需要完全相同的二进制文件。中断执行。加载该版本的.pdb。运行以下命令:

ln TestGame.exe+0x1c0c9f1