【问题标题】:Managed Debugging Assistant 'FatalExecutionEngineError'托管调试助手“FatalExecutionEngineError”
【发布时间】:2015-07-16 10:16:06
【问题描述】:

我遇到以下错误:

托管调试助手“FatalExecutionEngineError”在“C:\Users\App\App.exe”中检测到问题。 附加信息:运行时遇到致命错误。错误地址位于线程 0x72bc 上的 0xf5b029e1。错误代码为 0xc0000005。此错误可能是 CLR 或用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM-interop 或 PInvoke 的用户封送错误,这可能会损坏堆栈。

在调试时执行此语句时出现上述错误。

 LoggerHandler.Info("Executed " & iterations.ToString & " iterations on " & max_processors & " cores in " & Format((Now() - time).TotalSeconds, "0.0") & " seconds.")

【问题讨论】:

标签: debugging


【解决方案1】:

更改为使用“托管兼容模式”是我在 Visual Studio 2015 中修复错误的原因:

工具菜单>选项>调试>常规>“使用托管兼容模式”

Microsoft blog 更详细地描述了此设置的作用。

【讨论】:

  • 我看到了类似的错误,这个选项不起作用,你能帮忙看看这里吗:stackoverflow.com/questions/44213605/…
  • 我有同样的错误,当我启用“使用托管兼容模式”时,当我再次运行程序时它显示以下错误:“运行时遇到致命错误。错误的地址在0x722f5a90,在线程 0xeb8 上。错误代码是 0xc0000005。此错误可能是 CLR 中的错​​误或用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM-interop 或 PInvoke 的用户编组错误,这可能会破坏堆栈。”注意:我正在使用 [DllImport("swedll32.dll", EntryPoint = "_swe_julday@24")]。不确定,但 swedll32.dll 是非托管 c/c++ dll。
  • 现在,在 VS 2019 中,当 catch(ex) when (condition) 的条件计算为 NullReferenceException 时会发生此错误。发生这种情况时,您的应用会崩溃; Visual Studio 抛出致命的执行引擎错误
【解决方案2】:

我知道这是一个较旧的线程,但我最近遇到了这个错误并花了大约 10 小时来诊断问题,结果发现最新版本的 Cylance 存在干扰。从本质上讲,Cylance 内存保护 阻止了基于 Web 的项目的本地调试(ASP 和 WCF 在我们的范围内)。希望这可以节省其他人一些时间进行故障排除。

【讨论】:

    【解决方案3】:

    这解决了我的问题:

    工具->选项->IntelliTrace->常规

    并选中“仅限事件”选项

    【讨论】:

    • 这个选项在 vs2017 中的什么地方?
    猜你喜欢
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2013-02-06
    相关资源
    最近更新 更多