VS2013 似乎没有正确附加 - 调试器已附加但未配置为调试此未处理的异常
VS2013 doesn't seem to attach correctly - a debugger is attached to but not configured to debug this unhandled exception
在编写控制台应用程序时,我使用的是 SAP DLL。
尝试添加 SAP 对象时出现以下错误:
A debugger is attached to but not configured to debug this unhandled exception. To debug this exception detach the current debugger.
代码:
SAPbobsCOM.GeneralService oGeneralService = oCmpSrv.GetGeneralService("WEPPAGE");
SAPbobsCOM.GeneralData oGeneralData = (SAPbobsCOM.GeneralData)oGeneralService.GetDataInterface(di.GeneralServiceDataInterfaces.gsGeneralData);
oGeneralData.SetProperty("U_WebId", "1");
try
{
oGeneralService.Add(oGeneralData);
}
catch (Exception e)
{
Logger.WriteLog("Error Add object " + e.Message);
}
虽然代码用 try&catch 包装,但 IDE 崩溃了。
在网络上进行多次搜索和建议后都没有帮助,我遇到了 this post 并应用了建议的解决方案并在项目属性调试选项卡下启用了本机代码调试。
勾选此选项的结果是,不是让我调试未知错误,异常只是 "disappeared" 并且代码运行不受干扰。
问题
- 为什么异常消失,没有调试?
- 是否可以针对此问题采用不同的解决方法,因为启用本机代码调试会使应用程序速度降低 10 倍,而不是真正解决此问题的方法。
Although the code is wrapped with try&catch, the IDE crashes
不,WER 对话框显示崩溃的是您的程序,而不是 IDE。不是您的代码,OBServerDLL 是一个 SAP 组件。鉴于崩溃的性质,使用 try/catch 将无法捕获此异常,它发生在 SAP 代码内的工作线程上。
请记住,崩溃原因 非常 令人讨厌,异常代码 c0000005
等同于 AccessViolationException。通常的原因是内存损坏。永远不要捕获这样的异常,您的程序无法有意义地继续运行。
Why does the exception disappears and not debugged?
这当然是不应该发生的,非常不健康。 AVE 往往是相当随机的,内存损坏并不能保证崩溃。请记住,当您在调试时 确实 发生时,您仍然找不到任何有关原因的信息,您没有 OBServerDLL 的源代码。
enabling the native code debugging is slowing down the app by 10x
这不太可能,除非本机代码以非常高的速度抛出异常。您可以在输出 window 中轻松看到的内容。它 的作用是减慢调试会话的启动速度。调试器将尝试为所有本机可执行文件查找 PDB,它不会在 Microsoft Symbol Server 中为 SAP 代码找到任何东西。避免延迟的最简单方法是使用“工具”>“选项”>“调试”>“符号”,取消勾选 "Microsoft Symbols Servers" 选项。
SAP 支持论坛上的 This question 具有一定的可比性。也是寻求此类问题帮助的最佳场所。尽管您可能需要 SAP 升级工程师的支持,但他需要一个小型重现项目和崩溃进程的小型转储。
在编写控制台应用程序时,我使用的是 SAP DLL。 尝试添加 SAP 对象时出现以下错误:
A debugger is attached to but not configured to debug this unhandled exception. To debug this exception detach the current debugger.
代码:
SAPbobsCOM.GeneralService oGeneralService = oCmpSrv.GetGeneralService("WEPPAGE");
SAPbobsCOM.GeneralData oGeneralData = (SAPbobsCOM.GeneralData)oGeneralService.GetDataInterface(di.GeneralServiceDataInterfaces.gsGeneralData);
oGeneralData.SetProperty("U_WebId", "1");
try
{
oGeneralService.Add(oGeneralData);
}
catch (Exception e)
{
Logger.WriteLog("Error Add object " + e.Message);
}
虽然代码用 try&catch 包装,但 IDE 崩溃了。
在网络上进行多次搜索和建议后都没有帮助,我遇到了 this post 并应用了建议的解决方案并在项目属性调试选项卡下启用了本机代码调试。
勾选此选项的结果是,不是让我调试未知错误,异常只是 "disappeared" 并且代码运行不受干扰。
问题
- 为什么异常消失,没有调试?
- 是否可以针对此问题采用不同的解决方法,因为启用本机代码调试会使应用程序速度降低 10 倍,而不是真正解决此问题的方法。
Although the code is wrapped with try&catch, the IDE crashes
不,WER 对话框显示崩溃的是您的程序,而不是 IDE。不是您的代码,OBServerDLL 是一个 SAP 组件。鉴于崩溃的性质,使用 try/catch 将无法捕获此异常,它发生在 SAP 代码内的工作线程上。
请记住,崩溃原因 非常 令人讨厌,异常代码 c0000005
等同于 AccessViolationException。通常的原因是内存损坏。永远不要捕获这样的异常,您的程序无法有意义地继续运行。
Why does the exception disappears and not debugged?
这当然是不应该发生的,非常不健康。 AVE 往往是相当随机的,内存损坏并不能保证崩溃。请记住,当您在调试时 确实 发生时,您仍然找不到任何有关原因的信息,您没有 OBServerDLL 的源代码。
enabling the native code debugging is slowing down the app by 10x
这不太可能,除非本机代码以非常高的速度抛出异常。您可以在输出 window 中轻松看到的内容。它 的作用是减慢调试会话的启动速度。调试器将尝试为所有本机可执行文件查找 PDB,它不会在 Microsoft Symbol Server 中为 SAP 代码找到任何东西。避免延迟的最简单方法是使用“工具”>“选项”>“调试”>“符号”,取消勾选 "Microsoft Symbols Servers" 选项。
SAP 支持论坛上的This question 具有一定的可比性。也是寻求此类问题帮助的最佳场所。尽管您可能需要 SAP 升级工程师的支持,但他需要一个小型重现项目和崩溃进程的小型转储。