我有一个崩溃转储文件,我需要使用windbg进行分析以运行一些测试。
由于一些限制我无法评论,我的符号文件夹只能包含分析此故障转储所需的符号。
有没有办法知道转储所需的确切符号?如果有帮助,我可以先在另一个所有符号都可用的环境中分析这个转储。
谢谢。
答案 0 :(得分:5)
您可以使用!sym noisy
使Windbg转储出所需的符号并查找。
如果使用本地缓存设置符号路径,Windbg将仅将所需符号下载到本地缓存路径中
如果在计算机上加载转储,强制它加载所有符号,lml
命令将显示所有已加载的符号,您可以看到每个模块从中加载符号,只将那些pdb文件复制到目标中受限制的环境。
答案 1 :(得分:1)
我不完全确定这是否可行。分析转储是一个动态过程,但您正在寻找静态解决方案。除非您已经知道问题是什么,否则无法知道需要什么符号。因此,不可能知道需要什么符号集。
甚至做一些简单的事情就像说“我只会为堆栈中有帧的DLL提供符号”是不够的。内存损坏或来自不在堆栈上的DLL的全局变量可能会影响程序的行为。保留该DLL的符号可以防止诊断问题。
虽然可以产生不错结果的一种方法是以下
答案 2 :(得分:0)
您也可以使用命令:
lml
运行“analyze -v”后显示WinDbg加载或尝试加载的符号。