Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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
Debugging 压缩windows pdb符号文件会阻止调试器加载它们_Debugging_Windbg - Fatal编程技术网

Debugging 压缩windows pdb符号文件会阻止调试器加载它们

Debugging 压缩windows pdb符号文件会阻止调试器加载它们,debugging,windbg,Debugging,Windbg,我编写了一个脚本来托管一个符号服务器。我不希望使用symstore.exe。 我要做的是:-获取PDB的GUID和年龄。将两者连接起来,并将我的pdb文件放在由结果字符串命名的文件夹中 我的符号服务器/共享工作正常 现在,, 为了实现压缩,我使用了微软的压缩工具,但是windbg停止加载符号。 有人能帮我吗?据我所知,压缩pdb并将其重命名为*.pd_u应该可以正常工作。查看文档后: 只要使用随资源工具包一起分发的compress.exe工具,就支持压缩符号文件 压缩文件可以位于网络资源上,并在

我编写了一个脚本来托管一个符号服务器。我不希望使用symstore.exe。 我要做的是:-获取PDB的GUID和年龄。将两者连接起来,并将我的pdb文件放在由结果字符串命名的文件夹中

我的符号服务器/共享工作正常

现在,, 为了实现压缩,我使用了微软的压缩工具,但是windbg停止加载符号。
有人能帮我吗?据我所知,压缩pdb并将其重命名为*.pd_u应该可以正常工作。

查看文档后:

只要使用随资源工具包一起分发的compress.exe工具,就支持压缩符号文件

压缩文件可以位于网络资源上,并在加载时进行复制和解压缩,这意味着您必须指定一个本地符号存储,它将被复制到该存储并解压缩,这必须是第一个条目,因为如果您以不同的顺序指定路径,那么它可能无法复制和解压缩它,因此您发现,如果您先指定本地路径,它可以工作


在您的案例中,以下操作有效:
srv*C:\localSymbols*

我假设您没有使用dbghelp 6.1或更早版本,但您所说的应该是有效的:要阅读PDB,我使用的是DIA SDK。我将管道上的GUID和年龄返回到python脚本。没有使用compress的symbol服务器工作正常,但在我压缩所有内容之后,它就不工作了。在层叠时,该页面上有一条注释
,除非目标存储是路径中最左边的存储,否则不会解压缩文件。如果路径中只有一个存储并且包含压缩文件,SymSrv将把文件复制到默认的下游存储并从那里打开,即使默认的下游存储没有在它们的符号路径中指明。
那么您的存储是最左边的路径吗?我的https://*存储是我的符号路径列表中最左边的存储。但是,链接u上的状态是,如果-“”或存储列表的左侧,则不可能将找到的任何文件复制到该链接,链将被断开。此外,由于符号处理程序无法从网站打开文件,因此基于HTTP的存储不应是列表中最左侧或唯一的存储,我应该尝试使用右边有https路径的符号服务器?这有点混乱,但似乎表明它允许层次结构,他们称之为级联,但我的解释是,这遵循通常的查找规则,从左边开始读取