当前上下文中不存在名称“$ exception”

今天我在我的工作中调试了一个应用程序。 我继续在我的一个catch块中设置断点,以便更详细地检查exception。

View Detail模式窗口正常打开,但不是向我显示exception的细节,而是抛出一个奇怪的错误,一个我从未得到的错误,也不知道它意味着什么:

查看详细信息例外

错误说:

当前上下文中不存在名称“$ exception”

这令人沮丧,因为我在catch块范围内,所以我应该能够看到我的exception。

重新启动我的应用程序后,我设法调试它就好了。 这是唯一一次(到目前为止)我遇到了这个错误。

有谁知道这意味着什么以及如何解决它(无需重新启动应用程序)?

注意 :我使用的是Visual Studio 2012 Premium 。 版本11.0.61030.00更新4

尝试明确告诉编译器如何导入dll。 例如:

 using System; using System.Runtime.InteropServices; namespace BitmapProcessingCs { public static class NativeMethods { [DllImport("BitmapProcessingCpp.dll", CallingConvention = CallingConvention.Cdecl)] public static extern void GenerateBitmap(IntPtr src, int dimension); } } 

看看MSDN的库: https : //msdn.microsoft.com/en-us/library/ms164891.aspx

根据他们的说法,如果在没有发生exception的情况下尝试评估exception对象,则会出现exception。 但是,由于你处于catch块中,因此发生了一个摘要…没有看到你的代码就很难猜到,但是你可能有多个线程正在运行,并且在处理之前一个线程占用了exception另一个? 没有意义,但值得一看。 安全(r)选项是确保在尝试从中获取详细信息之前检查记录器中的exception是否为空。 另外值得一看:HttpRequestException包含一个内部exception,它可能是空引用的来源? 只是推测。

我同意trapsuutjies,可能没有例外。 要禁止显示此错误,请按Ctrl + Alt + E,展开“托管调试助手”,然后取消选中“LoadFromContext”。

当我看到这个错误时,我在调试器中也得到了“无法计算表达式”的错误。 这让我想起了Rick Strahl的这篇文章,他说这是Visual Studio 2013原始版本中的一个错误。

https://weblog.west-wind.com/posts/2013/Nov/21/Visual-Studio-2013-Could-not-evaluate-Expression-Debugger-Abnormality

当我检查我所在的机器时,实际上它没有安装任何更新的VS2013。 安装更新解决了问题。

我在这些步骤中解决了同样的问题:

步骤1)如果使用Visual Studio在C ++中编写自定义DLL,则在项目的属性页面中将Common Language Runtime Support (/clr)参数设置为Common Language Runtime Support (/clr)

步骤2)要在.h文件中使用减速function,请使用__declspec(dllexport)关键字,如下所示:

 __declspec(dllexport) double Sub(int a,int b); 

步骤3)构建并导出DLL文件,然后使用Dependency Walker软件获取您的函数EntryPoint

step4)导入DLL文件在C#项目中设置EntryPointCallingConvention变量,如下所示:

 [DllImport("custom.dll", EntryPoint = "?Sub@@Y234NN@Z", CallingConvention = CallingConvention.Cdecl)] public static extern double Sub(int a,int b);