我想了解一下我收到的错误:
托管调试助手'FatalExecutionEngineError'在'C:\ app.exe'中检测到问题。附加信息:运行时遇到致命错误...此错误可能是CLR中的错误或用户代码的不安全或不可验证部分。此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈。“
我不仅要了解错误本身,还要了解CLR可能发挥作用的方式/方式,而且我从未真正听说过COM-intercop或PInvoke ......所以对这些内容的一些见解也会有所帮助。
此外,真正奇怪的部分是如果我继续通过断点并且不进入或结束,我没有看到错误。但是,如果我逐行执行,则会弹出错误!任何人都可以解释为什么我只是在走过时才看到它吗?
不确定其他哪些信息有用..请让我知道(当然很好!)我可以添加的内容。
提前谢谢! :)
答案 0 :(得分:3)
我遇到了一个关于Dotnet Core项目的工作。我删除了二进制文件并重建,这为我修复了它。简单地做一个清洁和构建或只是重建没有任何效果。
答案 1 :(得分:2)
这很可能不是CLR错误,但可能是Heisenbug。但是,如果没有看到你的代码,我们无法真正说出导致它的原因。
尝试启用Managed Debugging Assistants以确定是否正在抑制某些错误或访问冲突。
答案 2 :(得分:1)
这个问题让我很烦恼,而且我没有找到原因,但我找到了解决办法,所以我至少可以继续做我的工作。
对我来说,当我使用F10和F11调试时会出现问题,我很兴奋该方法并且该方法返回到功能文件。因此,作为一种解决方法,我已经为方法的所有条目添加了断点,当我到达下一个方法的出口时,我使用F5进行下一个操作,这样做就不会崩溃。
只有当我从使用F10或F11的方法返回* .feature文件时,才会出现此问题。
我希望它有所帮助,至少作为一种解决方法,但我真的很想知道它的实际原因。
答案 3 :(得分:0)
我最近遇到了同样的错误。我注意到我有两个完全相同的项目(两者都相同)。一个是有这个问题。所以我在我的项目属性中注意到了 - >在编译菜单下 - >在顶部,Configuration已设置为Release。我将其更改回Active(调试)并重新编译。 现在它工作正常。 click to see Image
答案 4 :(得分:0)
好吧,我将告诉您我的悲伤故事,以免其他人再次陷入同一错误,这是在我在无限循环线程内连续调用本机C ++ API并忘记在需要时停止线程,有时您提到的此错误正在爆发,或者是受读/写保护的内存异常,甚至更糟的是有时整个应用程序只是崩溃了:)
那是所有人。
答案 5 :(得分:0)
实际上对我有帮助的是删除所有断点。可能其中一些指向注释行。