我最近逐行跟踪了异常行的来源
Try
{
Debug.WriteLine("ViewHelper before comObj.Send() ");
comObj.Send(); // a very old com component
Debug.WriteLine("ViewHelper after comObj.Send() ");
}
Catch (Exception Ex)
{
Debug.WriteLine("ViewHelper comObj.Send " + Ex.Message);
}
comObj.Send()抛出异常
异常崩溃应用程序
但它没有陷入上述尝试捕获中
我已经打破了Visual Studio中的所有Exceptions,并且没有打破这一行
它被捕获在全局错误处理程序App_DispatcherUnhandledException
中
如果我设置e.Handled = true;它被抛出很多次仍然崩溃的应用程序
例外情况没有提供有关来源的信息
我找到源的唯一方法是调试语句之前和之后的那些
在一百个电话中抛出异常,因此很难跟踪
有没有更好的方法来查找例外来源?
有没有办法回到最后一行叫?
在后台网站中,我应该专注于COM组件。
答案 0 :(得分:1)
当我怀疑从本机代码抛出异常时,我启用了debugging of unmanaged code
。来自MSDN:
启用非托管代码的调试
在“解决方案资源管理器”中选择项目后,在“项目”菜单上单击“属性”。
单击“调试”选项卡。
- 醇>
选中“启用非托管代码调试”复选框。
这会降低性能,因此在不调试本机组件时将其关闭。
我首先打破所有异常,但你提到你这样做了,所以非管理调试对我来说是下一步。