使用.config文件时,如何在生产中记录托管的调试助手异常?

问题描述

我目前在调试应用程序时遇到ContextSwitchDeadlock。 但是,我想用我们已经发货的应用程序检测到这一点。

我已经解决了:

  • 如何制作 appName.exe.mda.config 文件,其中列出了contextSwitchDeadlock助手
  • 使用注册表或环境变量启用MDA

在我自己的测试中,我发现检测到ContextSwitchDeadlock时(从命令行而不是Visual Studio运行exe),我看到了一个调试器窗口,要求我附加到Visual Studio。或开始一个新的;并且发现了僵局。很棒。

但是,在进一步研究中,似乎当我将有问题的代码放在Try / Catch块中时,它会在生产中复制代码

  • 我无法捕获或记录“例外”
  • 永远不会显示启动调试器的提示

我认为这是在Visual Studio中在“ Thrown”框上打勾或不打钩时得到的区别,例如未处理与已处理。 但是我需要在运行时记录此问题,而无需附加Visual Studio,并安装我的异常处理程序。

我找不到mda.config文件的任何语法-XML中是否有一个属性或元素块可让我在抛出ContextSwtichDeadlock时输出到debugview或显示信息?

我知道这并不是一个例外,但它的行为就像一个例外-尊重我有一个try / catch处理程序的事实,并且当它出现在其中时不显示

我们不能简单地将调试器附加到实时环境中,甚至不允许我们登录调试器或重新创建环境;因此我尝试添加诊断程序,以发现死锁是否是导致客户面临停滞的原因。

我们在代码中可以做些什么来帮助检测到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...