断点的使用技巧(未完待补充)

本文介绍如何高效使用断点进行调试,包括设置断点条件、忽略次数、自动继续及执行动作等高级功能,帮助开发者提高调试效率。

断点的使用技巧

在最初的时候不会用断点,碰到循环里特点条件断点或者特定条件下查看对象的状态属性时,我会傻傻的的去写个if语句,然后重新运行,断点完了后运行,然后再把if和log代码删除,非常低效,其实断点是可以设置属性的。

断点有4个属性可以设置

  • Condition
  • Ignore
  • Option
  • Action

断点设置截图

  1. Conditon, 就是断点条件,输入条件表达式后,当符合条件时断点才会生效,解决循环体调试非常有效
  2. Ignore, 这个很简单,就是忽略断点的次数,如果设置2,第三次符合条件时才会生效
  3. Option, 这是个勾选项,Automatically continue after evaluating actions。如果选中,那么断点生效时只会输出日志,不会阻断程序运行
  4. Action 是个很强大的功能,有6种类型,比较常用的有两种 Log Message和Debugger Command

Log Message
在这里填写的东西可以打印到控制台,例如我做了如下设置
这里写图片描述
举个例子:begin log imageView = @imageView@
或者, 在@@前后可添加自定义语句,如果 i want log imageView = @imageView@
%B会打印断点的名字,%H会打印断点的调用次数,@@中间可以输入表达式。上面的设置在控制台的输出如下:
这里写图片描述

Debugger Command

这里可以输入调试命令,也就是po(打印对象信息),bt(打印函数栈),expression(表达式)这些调试命令。看图就明白了:
这里写图片描述
image 控制台输出如下:
这里写图片描述

### 断点调试的使用方法与配置 断点调试是开发过程中非常重要的功能之一,它允许开发者在程序运行时暂停代码执行,并检查变量值、调用栈以及程序状态。以下是关于断点调试的详细说明,包括不同工具中的使用方法和配置。 #### 1. IDEA 中的断点调试 IDEA 提供了多种类型的断点,以适应不同的调试需求。以下是常见的断点类型及其配置方式: - **行断点(Line Breakpoint)**:在指定代码行设置断点,当程序执行到该行时会暂停[^1]。 - **临时行断点(Temporary Line Breakpoint)**:与普通行断点类似,但会在激活后自动删除。 - **属性断点(Field Watchpoint)**:当某个字段被读取或修改时触发断点。 - **方法断点(Method Breakpoint)**:当程序进入或退出某个方法时触发断点[^1]。 - **异常断点(Exception Breakpoint)**:当程序抛出指定异常时触发断点,无需绑定到具体代码行。 配置步骤如下: 1. 在代码编辑器中单击目标行号左侧区域,设置断点。 2. 右键点击断点图标,选择“Edit Breakpoint”以配置条件或日志输出。 3. 启动调试模式(通常通过 `Shift + F9` 或工具栏按钮)。 #### 2. VS Code 中的断点调试 VS Code 提供了强大的调试功能,支持多种语言的断点调试。以下是一个 Python 示例程序的调试过程[^2]: ```python def divide(a, b): return a / b def main(): x = 10 y = 0 # 可能会引发 ZeroDivisionError result = divide(x, y) print("Result:", result) main() ``` 调试步骤: 1. 在目标行(如 `result = divide(x, y)`)左侧单击以设置断点。 2. 按下 `F5` 启动调试模式。 3. 程序暂停后,可以通过调试工具栏查看变量值、评估表达式或修改变量。 4. 使用条件断点避免在循环或重复代码中频繁暂停,提高效率[^2]。 如果遇到 `launch.json` 文件缺失的问题,可以参考以下解决方法[^4]: 1. 打开调试视图(`Ctrl + Shift + D`),点击齿轮图标生成默认配置文件。 2. 根据项目需求修改 `launch.json` 配置,例如添加解释器路径或调试参数。 #### 3. Python 的 pdb 调试工具 Python 自带的 `pdb` 工具提供了交互式的源代码调试功能,适合在命令行环境中使用[^3]。以下是常用命令及其功能: - `break [line]` 或 `b [line]`:在指定行设置断点。 - `continue` 或 `c`:继续执行程序直到下一个断点。 - `list` 或 `l`:显示当前代码段。 - `step` 或 `s`:逐行执行代码并进入函数内部。 - `next` 或 `n`:逐行执行代码但不进入函数内部。 - `return` 或 `r`:执行代码直到从当前函数返回。 - `pp [variable]`:打印变量值。 - `quit` 或 `q`:退出调试。 示例: ```python import pdb def main(): x = 10 y = 0 pdb.set_trace() # 设置断点 result = x / y print("Result:", result) main() ``` 运行程序后,将在 `pdb.set_trace()` 处暂停,允许用户输入调试命令。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值