如何激活/使用 JIT 调试?
Posted
技术标签:
【中文标题】如何激活/使用 JIT 调试?【英文标题】:How do I activate/use JIT-Debugging? 【发布时间】:2019-07-23 10:42:02 【问题描述】:我在 C# 中使用 monogame(版本 3.7.1)制作了一个游戏,并尝试在 Visual Studio 2017 中发布它。发布工作正常,但之后,我尝试执行 setup.exe 文件,但不幸的是,我得到了NullReferenceException 问题是我不知道如何调试并找出导致错误的原因。
最后,它指出您可以通过激活 JIT-Debugging 来激活调试。我已经通过写这行来做到这一点:
进入配置下的machine.config文件,但现在我不知道如何使用它,因为当我运行.exe时它仍然给我NullReferenceException错误,我在互联网上没有找到任何线索使用它。
【问题讨论】:
我不确定 JIT 是否适用于运行 setup.exe,它仅适用于您编写并正在运行的实际代码。要使用 JIT,您必须附加到 Visual Studio 中的进程,并确保它在调试模式下使用符号编译。 Hi brachi,要启用JIT调试,请以管理员身份运行VS并进入Tools-Options-Debugging-Just-In-Time,选择要保存的选项,请检查:@987654321 @ 和即时调试适用于 Windows 桌面应用程序。它不适用于通用 Windows 应用程序或托管在本机应用程序(例如 Visualizer)中的托管代码。 【参考方案1】:在 VS 中设置 JIT 调试器的步骤已结束: https://docs.microsoft.com/en-us/visualstudio/debugger/debug-using-the-just-in-time-debugger?view=vs-2017
JIT 调试器将针对任何 .NET 应用程序中的任何未处理的 .NET 异常弹出。当然,要调试应用程序,您需要有源代码和符号,而调试零售/发布位更加困难。
【讨论】:
以上是关于如何激活/使用 JIT 调试?的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2015 Express for Desktop 是不是支持 JIT 调试?
.NET高级调试 | 通过JIT拦截无侵入调试 C# Emit 生成的动态代码