vscode代码红色字体啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vscode代码红色字体啥意思相关的知识,希望对你有一定的参考价值。
参考技术A 在 VS Code 中,红色字体通常表示代码存在错误或警告。这些错误和警告可能是语法错误、拼写错误、未定义的变量等。当你编写代码时,如果出现红色字体,则需要检查并修复它们。VS Code 会根据不同类型的问题使用不同的标记来显示这些问题,例如一个小红圆点表示有一个或多个错误,而黄色三角形则表示有一个或多个警告。你可以通过单击这些标记来查看详细信息,并尝试解决相应的问题。
Eclipse 调试视图中的红色线程是啥意思?
【中文标题】Eclipse 调试视图中的红色线程是啥意思?【英文标题】:What do red threads mean in Eclipse Debug View?Eclipse 调试视图中的红色线程是什么意思? 【发布时间】:2021-06-28 04:23:03 【问题描述】:在 Eclipse 中调试我的 Java 应用程序期间,调试视图以红色文本颜色和锁定符号显示一些线程:
谁能解释一下这是什么意思?
我目前正在我的代码中寻找(潜在的)死锁。这就是为什么红线困扰我的原因。但是当我挂起 VM 时,这些线程显然不涉及死锁情况:
我研究了Eclipse help pages for Debug View,但没有找到任何解释。
编辑:正如@howlger 正确指出的那样,Eclipse Tips and Tricks (JDT) 页面上有一条注释,指出“......死锁中涉及的线程以红色呈现......”。但这是否也意味着死锁检测是将线程渲染为红色的唯一原因?如果是这样,我的情况可能只是日食内部启发式的误报。一旦我挂起我的虚拟机,eclipse 就会详细调查监视器的所有权,并发现没有实际的死锁情况。这也与挂起的线程外观一致(我在上面的第二个屏幕截图):挂起时线程突然不再是红色了。
【问题讨论】:
死锁检测是 Java VM 的一项功能,而不是 Eclipse 内部启发式。该文档非常清楚红色在这里的含义(请参阅我的回答)。当然,这是唯一的原因(否则将是违反 UI 准则的错误)。如果您想知道您的代码发生了什么,请通过将您的代码显示为minimal reproducible example 来作为一个单独的问题提出(并且请更具体,例如 deadlock situation 不是在UI 或文档,因此您需要指定它)。 在这个 DebugView 中,线程状态的偶尔不一致的可视化显然是很有可能的。它有时会出现在我的完整应用程序中。我试图用三个简单的线程在一个小例子中重现它。但后来效果并没有显现出来。我不认为它是一个错误或任何东西。我可以想象 Eclipse 并没有随时掌握所有确切信息。 我花时间回答了您的问题“Eclipse Debug View 中的红色线程是什么意思?” 并附上官方文档的链接。我问你在你的情况下线程是否永远等待,你没有回答。您写了关于“(潜在的)死锁” 和“显然没有涉及死锁情况” 的文章,其中显示了两个裁剪的屏幕截图。我能够重现带有死锁的屏幕截图,所以说它显然对于提供的信息没有意义。 请阅读code of conduct并考虑删除您的“我的印象是,您既没有试图理解我的问题,也没有帮助解决这个问题......” i> 评论,因为它既不好也不真实也不增加价值。 【参考方案1】:红色的线程陷入死锁,但您必须启用显示监视器才能查看线程拥有哪个 哪个对象。
查看Eclipse Tips and Tricks (JDT)帮助页面:
线程和监视器
Java 调试器可以选择在 调试视图。使用调试视图下拉菜单中的 Show Monitors 操作来显示哪些线程持有锁,哪些线程正在持有锁 等待获取锁。呈现死锁中涉及的线程 红色。
【讨论】:
谢谢,但我总是启用显示监视器。我通常可以以与您的屏幕截图相同的方式看到实际的死锁。 您也可以启用显示系统线程,以防等待的对象属于系统线程。 好的,我之前没有启用显示系统线程。现在激活它。再现了情况。不幸的是,它不会改变效果的外观。 你说的“效果的外观”是什么意思?您找不到拥有您裁剪的屏幕截图中显示的三个线程正在等待的锁的线程? 外观相同。这意味着我可以从我的原始帖子中复制这两张图片,然后在这里再次发布它们(我饶了我们)。红色的线程也不太可能产生死锁,它们是相同的、非常简单的 Runnable 的实例,只是在等待 notify() 或 notifyAll()。他们不拥有其他锁/对象。以上是关于vscode代码红色字体啥意思的主要内容,如果未能解决你的问题,请参考以下文章