Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调试小型转储_C#_Visual Studio 2010_Symbols_Debug Symbols_Postmortem Debugging - Fatal编程技术网

C# 调试小型转储

C# 调试小型转储,c#,visual-studio-2010,symbols,debug-symbols,postmortem-debugging,C#,Visual Studio 2010,Symbols,Debug Symbols,Postmortem Debugging,我已经在一个文件夹中编译了我的应用程序的调试版本。现在有所有的dll、pdb和带有pdb的exe。 现在,我已经使用Taskmanager创建了一个正在运行的应用程序的小型转储,该应用程序从此路径启动。现在,我可以在VisualStudio2010中打开此dmp文件。但是当我尝试调试时,会出现一条消息,即找不到符号。我已经将我的符号路径(pdb)添加到visual studio中的符号路径中,但没有成功。我还尝试在模块的上下文菜单上加载符号。它正在那里搜索MyApp.pdb,我已经选择了正确的p

我已经在一个文件夹中编译了我的应用程序的调试版本。现在有所有的dll、pdb和带有pdb的exe。 现在,我已经使用Taskmanager创建了一个正在运行的应用程序的小型转储,该应用程序从此路径启动。现在,我可以在VisualStudio2010中打开此dmp文件。但是当我尝试调试时,会出现一条消息,即找不到符号。我已经将我的符号路径(pdb)添加到visual studio中的符号路径中,但没有成功。我还尝试在模块的上下文菜单上加载符号。它正在那里搜索
MyApp.pdb
,我已经选择了正确的pdb。但我收到消息
在此文件夹中未找到匹配的符号文件

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

  • 您的pdb和dll是否具有相同的时间戳?重建时是否都重新创建了它们

  • 尝试使用以确保dll和pdb匹配

  • 按以下方式使用chkmatch:
    chkmatch-c MyApp.exe MyApp.dll

    输出应该如下所示

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

    结果:匹配

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

    你在.NET4上吗

  • 您的pdb和dll是否具有相同的时间戳?重建时是否都重新创建了它们

  • 尝试使用以确保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应用程序,则需要使用Windows调试工具获取32位转储文件。当您打开DMP文件时,VS应该提醒您这一点however@wal-是的,我有最新的ServicePack,我正在使用.NET 4(我已经在第一条评论中写了这个;-)。我可以将我的dmp和带有pdb的启动exe发送给您。这就足够了,你可以在你这边测试吗?我可以将其上传到我的DropBox。@t.kehl您需要安装32位版本的windows调试工具。ie,然后使用windbg创建一个转储文件,点击以下链接:@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应用程序,则需要使用Windows调试工具获取32位转储文件。当您打开DMP文件时,VS应该提醒您这一点however@wal-是的,我有最新的ServicePack,我正在使用.NET 4(我已经在第一条评论中写了这个;-)。我可以将我的dmp和带有pdb的启动exe发送给您。这就足够了,你可以在你这边测试吗?我可以将其上传到我的DropBox。@t.kehl您需要安装32位版本的windows调试工具。ie,然后使用windbg创建转储文件,请遵循以下链接: