我有一些客户端上运行的可执行文件。他在mymodule.dll!0xaddr
报告崩溃。
鉴于我具有可执行文件,符号服务器,正确设置的WinDbg,是否可以在不加载转储或不附加到正在运行的进程的情况下,在0xaddr
位置查看代码?
最佳答案
这取决于您要使用什么“代码” ...
ln mymodule.dll!0xaddr
以查看该地址附近的符号u mymodule.dll!0xaddr
以查看汇编代码如果EXE或DLL包含PDB信息,并且WinDbg能够找到PDB,并且PDB引用了源代码(例如私有(private)符号),您将获得一些有用的信息:
0:000> ln 00412510
[...\addressdemo\addressdemo.cpp @ 8] (00412510) AddressDemo!main | (00412575) AddressDemo!std::uncaught_exception
Exact matches:
0:000> u 00412510
AddressDemo!main [...\projects\addressdemo\addressdemo.cpp @ 8]:
00412510 55 push ebp
00412511 8bec mov ebp,esp
00412513 81ecc0000000 sub esp,0C0h
00412519 53 push ebx
0041251a 56 push esi
0041251b 57 push edi