【问题标题】:Debugging MiniDump调试 MiniDump
【发布时间】:2011-09-23 10:24:15
【问题描述】:

我在一个文件夹中编译了我的应用程序的调试版本。现在有所有的dll,pdb和带有pdb的exe。 我现在已经使用 Taskmanager 从这条路径开始创建了我正在运行的应用程序的 MiniDump。现在,我可以在 Visual Studio 2010 中打开这个 dmp 文件。但是当我尝试调试时,会出现一条消息,即找不到符号。我已将符号 (pdb) 的路径添加到 Visual Studio 中的符号路径中 - 但没有成功。我还尝试在模块的 ContextMenu 上加载符号。它正在那里搜索MyApp.pdb,我选择了正确的pdb。但我收到消息A matching symbol file was not found in this folder

如何使用 Visual Studio 2010 对我的 MiniDump 进行事后调试(以便它找到我的符号)?

【问题讨论】:

    标签: c# visual-studio-2010 symbols debug-symbols postmortem-debugging


    【解决方案1】:
    1. 您的 pdb 和 dll 是否具有相同的时间戳?重建时它们都重新创建了吗?

    2. 尝试使用chkmatch 确保您的 dll 和 pdb 匹配。

    这样使用 chkmatch: chkmatch -c MyApp.exe MyApp.dll

    输出应该是这样的

    调试信息文件:
    格式:PDB 7.00
    签名:{ef4bc52f-0161-4e0a-8654-cc1368d7a8a6} 年龄:1

    结果:匹配

    如果您的 pdb 与要转储的 exe 位于同一位置,则不需要设置符号路径。

    您使用的是 .NET 4 吗?

    【讨论】:

    • @wal - 是的,它们具有相同的时间戳。 chkmatch 给我结果调试信息文件:格式:PDB 7.00 签名:{0c98df34-162a-4fed-ab4a-2f241f7d1ffc} 年龄:1 结果:匹配 是的,我使用 .NET 4。我尝试调试的应用程序是x86-应用程序。这台机器是 x64 机器,装有 Visual Studio 2010 Premium 和 Windows 7。这可能是个问题吗?
    • @t.kehl 确实很奇怪!有最新的 VS 服务包吗?不知道现在该建议什么;我刚刚尝试了您正在尝试的临时项目,它对我来说没问题。你想把你得到的东西发给我吗(pdb、dll 和 dmp 文件)?
    • @t.kehl 如果您正在调试 x86 应用程序,那么您需要使用 Debugging Tools for Windows 来获取 32 位转储文件。但是,当您打开 DMP 文件时,VS 应该会提醒您这一点
    • @wal - 是的,我有最新的 ServicePack,我正在使用 .NET 4(我在第一条评论中写过这个 ;-)。我可以将我的 dmp 和带有 pdb 的启动 exe 发送给您。这是否足够,您可以在您身边进行测试?我可以把它上传到我的 DropBox 上。
    • @t.kehl 你需要安装 32 位版本的 windows 调试工具。即msdn.microsoft.com/en-us/windows/hardware/gg463016 然后使用windbg 创建转储文件,点击此链接:wiki.zimbra.com/wiki/…
    猜你喜欢
    • 2011-10-29
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多