Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windbg-检测崩溃转储所需的符号_Windbg_Symbols - Fatal编程技术网

Windbg-检测崩溃转储所需的符号

Windbg-检测崩溃转储所需的符号,windbg,symbols,Windbg,Symbols,我有一个崩溃转储文件,我需要使用windbg分析它来运行一些测试 由于某些限制,我无法发表评论,“我的符号”文件夹只能包含分析此崩溃转储所需的符号 有没有办法知道垃圾场需要的确切符号?如果有帮助的话,我可以先在另一个环境中分析这个转储,在那里所有的符号都可用 谢谢。我不完全确定这是否可行。分析转储是一个动态过程,但您正在寻找静态解决方案。除非您已经知道问题所在,否则不可能知道需要哪些符号。因此,不可能知道需要哪一组符号 即使只是简单地说“我只为堆栈上有帧的DLL提供符号”也是不够的。内存损坏或来

我有一个崩溃转储文件,我需要使用windbg分析它来运行一些测试

由于某些限制,我无法发表评论,“我的符号”文件夹只能包含分析此崩溃转储所需的符号

有没有办法知道垃圾场需要的确切符号?如果有帮助的话,我可以先在另一个环境中分析这个转储,在那里所有的符号都可用


谢谢。

我不完全确定这是否可行。分析转储是一个动态过程,但您正在寻找静态解决方案。除非您已经知道问题所在,否则不可能知道需要哪些符号。因此,不可能知道需要哪一组符号

即使只是简单地说“我只为堆栈上有帧的DLL提供符号”也是不够的。内存损坏或来自不在堆栈上的DLL的全局变量可能会影响程序的行为。保留该DLL的符号可能会阻止诊断问题

尽管有一种方法会产生不错的结果,但它是

  • 在所有符号都可用的环境中加载转储
  • 设置目录的符号路径
  • 运行“分析-v”
  • 此时转储模块的状态,并包括windbg加载符号的任何DLL的符号
      您可以使用
      !sym noise
      使Windbg转储它需要和查找的符号。 如果使用本地缓存设置符号路径,Windbg将仅将所需符号下载到本地缓存路径。

      如果您在计算机上加载转储文件,强制它加载所有符号,
      lml
      命令将显示所有加载的符号,并且您可以看到加载符号的每个模块,仅将这些pdb文件复制到您的目标受限环境中。

      您也可以使用该命令:

      lml
      

      在运行“analyze-v”显示WinDbg加载或试图加载的符号后。

      这就是我想要的答案。经过进一步的研究,我使用了这个命令!sym noise(空格之间)和srvlocalpathresourcepath仅下载所需的符号。非常感谢你。