如何调试.net致命执行引擎错误?

Pau*_*Jan 5 com debugging sharepoint

作为开发人员,我正在尝试在我们全新的VMWare ESX服务器上设置开发环境.事情没有成功:在SharePoint产品和技术配置向导的某个地方,应用程序刚刚消失,在事件日志中我发现以下错误:

.NET运行时版本2.0.50727.3082 - 致命执行引擎错误(7A0979C6)(80131506)

现在我知道这一切听起来很像ServerFault.com风格问题(以及一个非常通用的错误消息,谷歌上有很多类似的点击),当然我们正在以这种方式解决这个问题(安装/卸载服务包/修补程序) ,不同的操作系统版本,测试安装的各个元素,vm的不同设置等),但出于个人兴趣我想更多地了解这个问题然后"安装修补程序XXYY并希望它消失" .我想知道:如何从编码员的角度处理这个错误

  • 发生此问题时,我可以以某种方式使调试器停止,或手动将其指向报告的地址(在什么模块中)?
  • 我应该尝试安装使用Visual Studio,还是使用像windbg这样的低级工具?
  • 这些错误代码究竟是什么?后者看起来像一个com错误.另一个是地址吗?
  • 我可以以某种方式打开更详细的错误报告吗?一个错误的.dll会很好.

你可以说我在.net环境中的这个级别的调试方面没有经验,但我非常愿意学习.任何指针都是最受欢迎的!

ps当我尝试运行命令行配置工具psconfig来执行非UI配置时,大多数(如果不是所有)命令都会触发StackOverflowException.再说一次,我从哪里去?

Ale*_*gas 8

简短的回答:阅读Tess Ferrandez的博客.这包含许多有关调试.NET应用程序的宝贵指导,并指导您完成如何操作.

更长的答案......

在Visual Studio中

如果安装了Visual Studio,则可以尝试打破任何未处理的.NET异常.要启用此功能,请转到菜单并选择"调试","例外"并选中"公共语言运行时例外".然后转到工具,选项,调试并取消选中启用我的代码.最后,附加到配置向导的过程(您显然需要先运行它),并且Visual Studio调试器将在异常发生时中断.

假设调试器中断(如果它没有附加到错误的进程),那么您应该可以访问调用堆栈,并且可以从方法名称中做出一些有关出错的猜测.然而,有可能这是混淆的,这将没有帮助.您还可以看到调试器已停止的当前MSIL指令.这是它开始有点超出我的地方,但有很好的参考,以帮助您了解代码中发生了什么.

没有Visual Studio

如果您没有Visual Studio或由于某种原因无法使调试器中断,则可以创建崩溃进程的转储.我知道有两种方法.其中一个由Windows服务器性能团队使用好的Dr.Watson描述.另一个是Mark Russinovich刚刚发布的一个名为ProcInfo的新工具,它可以自动创建一个通过未处理的异常崩溃的进程转储.可能还有其他方法.

获得转储后,您可以使用此知识库文章来帮助您进行设置以进行调试.

最后

回到上面的"简短回答":阅读Tess的博客,进一步推进!这是一个很大的话题,她拥有我所发现的最好的资源.Vincent Rothwell也有一篇很好的文章可能有所帮助,但它确实是针对调试你自己的代码.

除此之外 - 你不应该得到你的例外.这表明一个非常严重的问题.我会看看腐败,严重的硬件故障,并考虑重建.