2010-08-20 76 views
0

我试图在2010年使用崩溃转储调试工具,但仍然失败。使用Visual Studio 2010调试崩溃转储程序

我得到这个错误,当我尝试启动调试:

“托管内存转储调试:签名验证文件 'C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ mscordbi.dll' 。与0x800700c1:

我使用的是我能想到的最简单的程序,而只需功成(下)失败,错误

这里的步骤,我服用:

  1. 构建
  2. 运行与双击Windows资源管理器
  3. 在任务管理器的进程上单击右键,然后选择“创建转储文件”
  4. 杀死进程
  5. 打开Visual Studio中转储文件(文件|打开,设置过滤器崩溃转储)的符号

多负载(我已经启用MS符号服务器)

景气(我得到一个错误对话框说我需要

  • 选择“与混合调试”指定我的符号路径 - 我相信我已经完成 - MS符号服务器已启用,并且我的解决方案已加载)

    在输出窗口中,出现以下错误(请注意,还有一堆成功符号加载,包括我的exe文件):

    托管Minidump调试:文件'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscordbi.dll'的签名验证失败,错误为0x800700c1。

    (一直以来,我的exe的代码解决方案都加载到Visual Studio实例中)。

    任何想法我做错了什么?这是VS 2010中crashdump调试的正确过程吗?

    假人程序:

     
    
        class Program 
        { 
         public static string AStaticProperty = "Hello World"; 
         static void Main(string[] args) 
         { 
          DoLoop(10000); 
         } 
    
         static void DoLoop(int iterations) 
         { 
          for (int i = 0; i < iterations; i--) 
           System.Threading.Thread.Sleep(500); 
         } 
        } 
     
    

    编辑

    我要去投票结束 - 我不知道这笔交易到底是什么,但现在一切工作。

    这里就是我所做的:

    1. 我开始调试运行过程中,2010年
    2. VS我使用了“保存转储文件”选项关闭调试菜单的2010年
    3. 我停下来的过程并加载转储文件。

    它的工作,所以我想:“嗯,也许问题是与我创建转储文件(曾用两个ADPlus的和任务管理器)。

    不过没有关系,现在这些工作了。(虽然他们失败的非常可靠的,直到我做了上述3个步骤)。奇怪的,但现在我不能瑞普,所以我要去投票关闭。

  • 回答

    0

    我认为这是一台不稳定的机器/需要重启问题。我一直无法重现问题

    0

    常见用于调试转储的工具是Windows调试工具中提供的WinDbg x64转储需要x64调试器,而x86需要x86调试器。

    Visual Studio只有x86,所以你不应该指望它可以调试所有的转储。

    +0

    实际上,我现在可以同时使用64位和x86转储(这是一项新的VS 2010功能,如果您的目标是.net 4.0,则可以将转储加载到dubugger中)。视频在这里:http://channel9.msdn.com/posts/Glucose/Hanselminutes-on-9-Debugging-Crash-Dumps-with-Tess-Ferrandez-and-VS2010/ 我打算投票结束这个线程 - 解释将在我的原始问题(神秘地开始工作,不能再重现问题) – JMarsch 2010-08-23 20:08:59