gpt4 book ai didi

c++ - 为什么 windbg 会在不同的路径中搜索转储文件和 exe 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 13:12:55 25 4
gpt4 key购买 nike

当我在 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 没有任何关系?

最佳答案

我对此进行了广泛的挖掘,创建了一个演示项目并模拟了崩溃并尝试了各种组合。答案是当涉及到默认搜索路径 (pdb) 时,转储文件似乎对可执行文件具有压倒一切的影响。

重现此场景的方法如下:

  1. 在 c:\code\App1 中创建名为 App1 的项目并构建它。
  2. 复制上面的项目并将主文件夹重命名为 App1Clone 并构建它,比如在 c:\code\App1Clone

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

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

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

关于c++ - 为什么 windbg 会在不同的路径中搜索转储文件和 exe 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38836711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com