为什么windbg在不同的路径上搜索dump和exe文件

Why does windbg search different paths for dump and exe file?

本文关键字:dump 搜索 exe 文件 路径 windbg 为什么      更新时间:2023-10-16

当我在WinDbg中打开转储文件时,它会在c:codeappV1文件夹

中查找pdb文件

当我直接在WinDbg中打开exe文件时,它会在c:codeappV2文件夹中查找pdb文件。

这让我很抓狂,因为在这两种情况下,windbg都在调试同一个exe,它位于c:MyAppapp.exe

c:codeappV1有意义搜索,这是pdb文件由exe生成的路径,但为什么它在c:codeappV2中搜索与转储文件或exe没有任何连接?

我对此进行了深入研究,创建了一个演示项目,模拟崩溃并尝试了各种组合。答案是,当涉及到默认搜索路径(pdb)时,转储文件似乎对可执行文件有覆盖作用。

下面是你如何复制这个场景:

    在c:codeApp1创建一个名为App1的项目并构建它。复制上述项目,并将主文件夹重命名为App1Clone并构建它,在c:codeApp1Clone中输入

现在首先复制App1到c:test文件夹并运行它。它将崩溃并创建转储文件。

现在将App1从App1Clone文件夹复制到c:test文件夹并运行它。它将崩溃并创建转储文件。

现在两个转储文件都链接到c:testapp1.exe,但如果存在错误的app1.exe(=搜索路径不匹配),它显然会选择应该存储在转储文件中的路径。我不知道转储文件是否存储这个路径,但根据我的实验,情况似乎是这样的。