idea debug 各个步骤含义

embedded/2024/9/23 17:25:28/

基本功能

在这里插入图片描述

IntelliJ IDEA 的 Debug 功能提供了强大的调试支持,允许开发者逐步执行代码,检查变量值,评估表达式等。以下是 Debug 模式中常见的几个按钮及其含义:

  1. Show Execution Point (显示执行点):将光标跳转到当前正在执行的代码行。

  2. Step Over (逐过):执行当前行的代码,如果当前行调用了某个方法,不会进入该方法内部,而是将整个方法作为一个整体执行。

  3. Step Into (逐入):执行当前行的代码,如果当前行调用了某个方法,则会进入该方法内部,并在方法的第一行停下。

  4. Force Step Into (强制逐入):与“逐入”类似,但是即使是对编译器生成的代码或者是不希望进入的方法(例如,由第三方库提供的方法)也会强制进入。

  5. Step Out (逐出):从当前方法中跳出,返回到调用该方法的地方,并停在方法调用的下一行。

  6. Run to Cursor (运行到光标处):程序会继续执行,直到达到光标所在的位置停下,这是一种快速跳过多行代码的方法。

  7. Evaluate Expression (计算表达式):允许开发者在当前的上下文中计算任意表达式的值,非常有用于检查或修改变量的值。

  8. Resume Program (继续程序):继续执行程序,直到遇到下一个断点。

  9. Stop (停止):停止当前的 Debug 会话。

  10. View Breakpoints (查看断点):打开一个窗口,列出所有设置的断点,并允许你修改或删除它们。

  11. Mute Breakpoints (静音断点):暂时禁用所有断点,让程序不在任何断点处停止,但不会删除这些断点。

这些按钮提供了强大的调试功能,帮助开发者理解和修复代码中的问题。

高级功能

在这里插入图片描述

在 IntelliJ IDEA 的 Debug 模式下,除了常用的调试操作外,还有一些高级功能,它们的含义如下:

  1. Reset Frame (重置帧):这个功能可以将当前方法的执行状态回滚到方法的开始。这对于想要重新执行某个方法中的代码而不重启整个调试会话非常有用。

  2. Throw Exception (抛出异常):允许你在当前执行点抛出一个异常。这对于测试异常处理逻辑非常有用。

  3. Force Return (强制返回):立即从当前执行的方法中返回,你可以指定返回值。这对于跳过方法的剩余部分执行非常有用,尤其是当你知道方法的剩余部分对当前调试不重要时。

  4. Copy Stack (复制堆栈):将当前的堆栈跟踪复制到剪贴板。这对于记录或分享当前的调用堆栈非常有用。

  5. Export Threads… (导出线程):将当前的线程信息导出到一个文件中。这对于分析或记录当前的线程状态非常有用。

  6. Customize Threads View… (自定义线程视图):允许你自定义 Debug 窗口中显示的线程信息,例如,你可以选择隐藏某些线程,以便更专注于你感兴趣的线程。

  7. Add Stepping Filter… (添加步进过滤器):允许你定义一组规则,IDEA 在执行 Step Into 操作时会自动跳过这些规则定义的代码。这对于避免进入不感兴趣的代码,如库代码或框架代码,非常有用。

  8. Async Stack Traces (异步堆栈跟踪):提供了一种方式来更好地理解和调试异步代码的执行流。它可以帮助你追踪异步操作的来源,即使在多个线程或事件循环中执行。

这些高级功能提供了更多的灵活性和控制,使得调试更加高效和方便。

watches 用法

在 IntelliJ IDEA 的 Debug 模式中,“Watches” 是一个非常有用的功能,它允许你监视表达式或变量的值,并在调试会话期间实时更新这些值。以下是 “Watches” 功能的基本用法:

添加监视表达式或变量

在这里插入图片描述

  1. 在 Debug 窗口中打开 “Watches” 标签页:首先,确保你已经在 Debug 模式下,然后在 Debug 工具窗口中找到并点击 “Watches” 标签页。

  2. 添加监视项:有几种方法可以添加监视项:

    • 直接输入:在 “Watches” 面板中,点击 “+” 按钮,然后在弹出的输入框中输入你想要监视的表达式或变量名。
    • 通过代码选择:在编辑器中,选中你想要监视的变量或表达式,右键点击,选择 “Add to Watches”。
    • 通过变量视图:在 “Variables” 标签页中,右键点击你想要监视的变量,然后选择 “Add to Watches”。

查看和编辑监视项

  • 查看值:添加到 “Watches” 中的表达式或变量的值会在调试会话期间实时更新。你可以直接在 “Watches” 面板中查看这些值。
  • 编辑表达式:如果需要修改监视的表达式,可以直接在 “Watches” 面板中双击相应的表达式,然后进行编辑。

移除监视项

  • 移除单个监视项:如果想要移除某个特定的监视项,可以在 “Watches” 面板中选中该项,然后点击 “-” 按钮。
  • 清空所有监视项:如果想要一次性移除所有监视项,可以点击 “Watches” 面板中的 “Clear All” 按钮(通常显示为一个垃圾桶图标)。

使用场景

“Watches” 功能非常适合以下几种场景:

  • 监视特定变量的值变化:当你想要跟踪某个变量在调试过程中的值变化时,可以将其添加到监视列表中。
  • 评估复杂表达式的值:如果你想要评估一个复杂表达式的值,而不是单个变量,可以将该表达式添加到监视列表中。
  • 调试循环中的变量:在循环结构中,监视特定变量可以帮助你理解循环的执行流程和变量值的变化情况。

通过有效使用 “Watches” 功能,可以更加深入地理解和调试你的代码。


http://www.ppmy.cn/embedded/101437.html

相关文章

【Google SEO】搜索引擎索引综合SEO指南

有没有想过网站是如何在搜索引擎上列出的,以及 Google、Bing 和其他公司如何在几秒钟内为我们提供大量信息? 这种闪电般快速性能的秘诀在于搜索索引。它可以与所有页面的庞大且完美有序的目录档案进行比较。进入索引意味着搜索引擎已经看到了你的页面&a…

UnrealEngine学习(02):虚幻引擎编辑器界面详解

学习一款软件,我个人建议是先学习怎么用,然后是学习怎么用的好,再研究源码。 上一篇文章详细描述了我们该如何安装虚幻5引擎: UnrealEngine学习(01):安装虚幻引擎https://blog.csdn.net/zuodingquan666/article/deta…

[oeasy]python031_[趣味拓展]unix起源_Ken_Tompson_Ritchie_multics

[趣味拓展]unix起源_Ken_Tompson_Ritchie_multics 🥋 回忆上次内容 上次 动态设置了 断点 断点 可以把代码 切成一段一段的可以 更快地调试 调试的目的 是 去除 bug 别害怕 bug 一步步 总能找到 bug这 就是 程序员基本功 调试 debug 在bug出现的时候 甚至…

『功能项目』摄像机跟随角色【07】

我们打开上一篇06新输入系统项目, 本章要做的事情是摄像机跟随主角移动, 给主角增加一个Player标签方便主摄像机查找主角对象 在编辑场景调好角度,选择Main Camera对象按键盘Ctrl Shift F使运行场景与编辑场景相同 新建CameraCtrl脚本代码 …

常见错误导引 不锈钢螺钉的正确选购和使用分析

紧固件或螺钉是用于固定物体的机械工具。它们用于各种场景,从建造房屋、用具、玩具等。紧固件由多种材料制成,所有这些材料都有特定用途紧固件和用途。一些用于制造螺丝的材料包括不锈钢、铁、铜、铝和塑料。它通常会进行某种表面处理以提高其防锈性和/或…

WITH (NOLOCK) 是 SQL Server 中的一个提示

WITH (NOLOCK) 是 SQL Server 中的一个提示(hint),它告诉 SQL Server 在读取数据时不要获取共享锁。这个提示通常用于优化读取操作的性能,特别是在读取大量数据时,因为它可以减少锁的竞争,从而可能加快查询…

探索Objective-C中的富文本世界:NSAttributedString与NSMutableAttributedString

标题:探索Objective-C中的富文本世界:NSAttributedString与NSMutableAttributedString 在iOS和macOS开发中,NSAttributedString和它的可变对应物NSMutableAttributedString是处理富文本的强大工具。富文本可以包含多种样式,如不同…

江苏存储服务器通常应用在哪些场景当中?

存储服务器是一种为特定目标所设计的,所以存储服务器的配置方式也是不同的,有的拥有一点额外的存储,也可能会拥有很大的存储空间的服务器,同时存储服务器通常都是独立的单元,并不是一般的服务器。 那存储服务器通常都会…