调试工具实用技巧与高级功能解析
1. 跟踪点与挂起状态
1.1 跟踪点概述
跟踪点(Tracepoint),也称为日志点(Logpoint)或日志消息,是一种可以使用调试器动态添加的日志。它是一种不会停止当前执行的断点,能够打印变量、方法等的值。与基于打印或日志的调试方法相比,跟踪点具有两大优势:
- 无需在提交代码前手动移除,避免了因忘记移除调试日志而引入生产环境的风险。
- 无需重新编译或停止执行即可添加日志,提高了调试效率。
1.2 不同IDE中的跟踪点使用
1.2.1 VS Code
在VS Code中,日志消息支持代码表达式,而非简单的字符串。这使得我们可以编写调用方法或列出变量的表达式,这些日志消息将显示在“调试控制台”视图中。
1.2.2 IntelliJ/IDEA
在IntelliJ/IDEA中,创建跟踪点时需要勾选“评估并记录”选项,并在其中输入表达式。此外,还可以创建条件跟踪点,即只有满足特定条件时才会显示日志,这有助于减少潜在的嘈杂日志。在高级对话框中,还有一些有趣的功能:
- 打印堆栈跟踪:在命中断点时打印堆栈跟踪,有助于将消息定位到打印它的代码的特定区域。
- 挂起选项:
- 典型的断点在命中时会挂起所有线程,而跟踪点则完全禁用这种行为,防止挂起。
- IntelliJ/IDEA还提供了仅挂起当前线程的选项,这对于多线程应用程序非常有用,因为在调试时可能需要后台线程继续运行。
下面是一个简单的mermaid流程图,展示在IntelliJ/IDEA中创建条件跟踪点的流程:
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



