当前位置:网站首页>Rider调试ASP.NET Core时报thread not gc-safe的解决方法
Rider调试ASP.NET Core时报thread not gc-safe的解决方法
2022-08-10 20:31:00 【阿升】
新建了一个ASP.NET Core 5.0的Web API项目,当使用断点调试Host.CreateDefaultBuilder(args)时,进入该函数后查看中间变量的值,报错Evaluation is not allowed: The thread is not at a GC-safe point
。在群里问了也没人回应,可能没有遇到过这个问题吧。
一.解决问题的过程
1.Visual Studio 2022调试
首先想到的是可能Rider不行,换成Visual Studio 2022试试,所以就查到了文献[1],发现需要pdb文件,还需要设置符号什么的,觉得太麻烦了。
2.Rider调试
然后又换成了Rider,既然调试看不到中间变量的值,那就直接Console.WriteLine()出来,结果Console在当前上下文中根本就不存在,如下:
二.最终的解决方法
1.YouTrack上的解决方法
继续在网上查找,发现在JetBrains的官方YouTrack上[2][3],Evgeny Terekhin在2022年5月30日给出了一个解决方法:
SET COMPLUS_ZapDisable=1 NGen off (CLR)
SET COMPLUS_JitMinOpts=1 Disable as much JIT optimizations as possible (CoreCLR)
SET COMPlus_TieredCompilation=0 No tiered JIT, only do one pass (CoreCLR)
SET COMPLUS_ReadyToRun=0 Don't do netcore's analog to NGen (CoreCLR)
大概的意思是对CLR做了设置,先不管设置的什么了,抱着试试看的心态。配置launchSettings.json文件:
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"COMPLUS_ZapDisable": "1",
"COMPLUS_JitMinOpts": "1",
"COMPlus_TieredCompilation": "0",
"COMPLUS_ReadyToRun": "0"
}
完成的配置文件如下所示:
2.调试ASP.NET Core
打上断点启动调试后,神奇般的发现也可以查看中间变量了。如下: Rider调试源码还是比Visual Studio方便很多,不需要pdb文件,也不需要设置什么符号,只需要进入要调试的函数中打上断点,然后启动调试即可。
参考文献:
[1]Debugging External Sources with Visual Studio:https://devblogs.microsoft.com/visualstudio/debugging-external-sources-with-visual-studio/
[2]Debugger: Evaluation is not allowed: The thread is not at a GC-safe point:https://youtrack.jetbrains.com/issue/RIDER-40357
[3]When debugging, variables don't display all of their data, instead we get 'Evaluation is not allowed: The thread is not at a GC-safe point':https://youtrack.jetbrains.com/issue/RIDER-10885/When-debugging-variables-dont-display-all-of-their-data-instead-we-get-Evaluation-is-not-allowed-The-thread-is-not-at-a-GC-safe
边栏推荐
- 图扑智慧电力可视化大屏,赋能虚拟电厂精准减碳
- 如何提高代码的可读性 学习笔记
- npm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
- PostgreSQL 介绍
- (十二) findContours函数的hierarchy详解
- “蔚来杯“2022牛客暑期多校训练营7 F
- 史上最全GIS相关软件(CAD、FME、Arcgis、ArcgisPro)
- (十)图像数据的序列与反序列化
- Tf ferritin particles contain cisplatin / oxaliplatin / doxorubicin / methotrexate MTX / paclitaxel PTX and other drugs
- 【CMU博士论文】视频多模态学习:探索模型和任务复杂性,152页pdf
猜你喜欢
随机推荐
机器学习笔记:t-SNE
【二叉树】二叉搜索树的后序遍历序列
npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.
svg+元素js实现在图片上描点成框,并获取相对图片的坐标位置
Auto.js中的悬浮窗
XML小讲
第四届红帽杯网络安全大赛
LeetCode questions 1-10
UE4 - 河流流体插件Fluid Flux
Redis命令手册
C语言系列——猜名次、猜凶手、打印杨辉三角
Introduction to PostgreSQL
@Autowired annotation --required a single bean, but 2 were found causes and solutions
.NET现代应用的产品设计 - DDD实践
Knowledge map Knowledge Graph
CGO 初步认知和基本数据类型转换
【实用软件】【VSCode】使用技巧大全(持续更新)
echart 特例-多分组X轴
C 语言 时间函数使用技巧(汇总)
C 语言 时间函数使用技巧(汇总)