【发布时间】:2010-10-13 06:23:59
【问题描述】:
我正在尝试使用 2010 进行故障转储调试,但它一直失败。
当我尝试开始调试时出现此错误:
“托管小型转储调试:文件'C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscordbi.dll'的签名验证失败,错误为0x800700c1。:
我正在使用我能想到的最简单的程序来启动(下)。
以下是我正在采取的步骤:
- 构建
- 在 Windows 资源管理器中双击运行
- 在任务管理器中右击进程,选择“创建转储文件”
- 杀死进程
- 在 Visual Studio 中打开转储文件(文件 | 打开,将过滤器设置为故障转储)
- 选择“混合调试”
大量加载符号(我启用了 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);
}
}
编辑
我将投票结束 - 我不知道具体的交易是什么,但现在一切正常。
这就是我所做的:
- 我在VS 2010开始调试运行进程
- 我在 2010 年使用了调试菜单中的“保存转储文件”选项
- 我停止了进程并加载了转储文件。
它起作用了,所以我想“嗯,也许问题出在我创建的转储文件上(同时使用了 adplus 和 TaskManager)。
但是不,现在这些也可以了。 (尽管在我完成上述 3 个步骤之前,它们非常可靠地失败了)。很奇怪,但现在我无法复制,所以我要投票结束。
【问题讨论】:
标签: c# visual-studio