当我在WinDbg中打开转储文件时,它会在c:\code\appV1文件夹中查找pdb文件。
当我在WinDbg中直接打开exe文件时,它会在c:\code\appV2文件夹中查找pdb文件。
这让我抓狂,因为在这两种情况下,windbg都在调试与c:\MyApp\app.exe相同的exe。
c:code\appV1搜索是有意义的,这是由exe生成pdb文件的路径,但是为什么它在与转储文件或exe没有任何关联的c:\code\appV2中搜索呢?
发布于 2016-08-10 20:25:19
我对此进行了广泛的挖掘,创建了一个演示项目,模拟了崩溃,并尝试了各种组合。答案是,当涉及到默认搜索路径(pdb)时,转储文件似乎对可执行文件有覆盖性的影响。
下面是如何重现此场景:
现在,首先复制App1,输入c:\test文件夹并运行它。它将崩溃并创建转储文件。
现在将App1从App1Clone文件夹复制到c:\test文件夹并运行它。它将崩溃并创建转储文件。
现在,这两个转储文件都链接到c:\test\app1.exe,但是如果出现了错误的app1.exe (=搜索路径不匹配),它显然会选择存储在转储文件中的路径。我不知道转储文件是否会存储这个路径,但根据我的实验,情况似乎是这样的。
https://stackoverflow.com/questions/38836711
复制相似问题