1

If a Windows application crashed on user's device without pdb, it would produce callstack like this:

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   

but I have .PDB file on development device, so I want address source line through .PDB. I know a command addr2line that can address line through .so file on Linux, I wonder if there's a command like addr2line on Windows.

Protoss
  • 512
  • 7
  • 27
  • 2
    You can load the dump file in visual studio or windbg, so long as the pdb matches then it should be able to resolve back to your code and line – EdChum Jan 03 '19 at 13:07

2 Answers2

0

Open TestGame.exe in windbg, you need exactly same binary. Break execution. Load the .pdb for that version. Run the following command:

ln TestGame.exe+0x1c0c9f1
Soonts
  • 20,079
  • 9
  • 57
  • 130
0

I happened to find this one: https://drmemory.org/page_symquery.html If you don't get the module base address, try VS' dumpbin.exe /headers xxx.exe to get the image base.

LuDong
  • 1