当我在WinDbg中打开转储文件时,它在c:\code\appV1
文件夹中查找pdb文件
当我直接在WinDbg中打开exe文件时,它会在c:\code\appV2
文件夹中查找pdb文件。
这让我抓狂,因为在这两种情况下,windbg正在调试c:\ MyApp \ app.exe
中的相同exe c:code\appV1
有意义搜索,这是exe生成pdb文件的路径,但为什么它在c:\code\appV2
中搜索与转储文件或exe没有任何关系?
答案 0 :(得分:0)
我对此进行了大量挖掘,创建了一个演示项目并模拟了崩溃并尝试了各种组合。答案是,当涉及默认搜索路径(pdb)时,转储文件似乎对可执行文件具有重要影响。
以下是重现此方案的方法:
现在首先将App1复制到c:\ test文件夹并运行它。它将崩溃并创建转储文件。
现在将App1从App1Clone文件夹复制到c:\ test文件夹并运行它。它将崩溃并创建转储文件。
现在两个转储文件都链接到c:\ test \ app1.exe但是如果存在错误的app1.exe(=搜索路径没有匹配),它显然会选择应该存储在转储文件中的路径。我不知道转储文件是否存储了这条路径,但基于我的实验,这似乎就是这种情况。