繁体   English   中英

使用Visual Studio 2010进行故障转储调试

[英]crashdump debugging with Visual Studio 2010

我正在尝试使崩溃转储调试与2010一起使用,但始终失败。

尝试开始调试时出现此错误:

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

我使用的是我想到的最简单的程序(下图)。

这是我正在采取的步骤:

  1. 建立
  2. 通过Windows资源管理器双击运行
  3. 右键单击TaskManager中的进程,然后选择“创建转储文件”
  4. 杀死进程
  5. 在Visual Studio中打开转储文件(“文件” |“打开”,将过滤器设置为崩溃转储)
  6. 选择“混合调试”

符号加载过多(我已启用MS Symbol服务器)

Boom(出现错误对话框,提示我需要指定我的符号路径-我相信我已经完成了-启用了MS符号服务器,并加载了我的解决方案)

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

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

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

知道我在做什么错吗? 这是在VS 2010中进行崩溃转储调试的正确过程吗?

测试虚拟程序:


    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. 我开始在VS 2010中调试运行过程
  2. 我在2010年的调试菜单中使用了“保存转储文件”选项
  3. 我停止了该过程并加载了转储文件。

它起作用了,所以我想:“嗯,也许问题出在我创建的转储文件上(曾经使用过adplus和TaskManager)。

但是不,现在这些也可以工作。 (尽管它们非常可靠地失败,直到我完成了上面的3个步骤)。 很奇怪,但是现在我不能再责备,所以我要投票关闭。

也许这个问题/答案“调试C#代码时出现的符号问题”可以帮助您。

用于调试转储的常用工具是WinDbg,可在Windows调试工具中找到。 对于x64转储,您需要x64调试器,而对于x86,则需要x86调试器。

Visual Studio仅是x86,因此不要指望它可以调试所有转储。

我认为这是不稳定的机器/需要重新启动问题。 我一直无法解决这个问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM