【调试技巧】vscode 四种断点调试,快速定位 bug

文章目录

    • 概要
    • Expression(表达式条件断点)
    • [Hit Count(命中次数断点)](#Hit Count(命中次数断点))
    • [Log Message(日志点 / 无中断日志断点)](#Log Message(日志点 / 无中断日志断点))
    • [Wait for Breakpoint(等待断点 / 依赖断点)](#Wait for Breakpoint(等待断点 / 依赖断点))

概要

在 VSCode 的调试功能中,Expression(表达式)、Hit Count(命中次数)、Log Message(日志消息)、Wait for Breakpoint(等待断点) 是四种常用的特殊条件断点,它们能让调试更精准、高效。

使用的demo:

python 复制代码
def multiply(a, b):
    result = a * b
    return result 

if __name__ == "__main__":
    pairs = [(2, 3), (4, 5), (6, 7)]

    for a, b in pairs:
        print(f"{a} * {b} = { multiply(a, b)}")

定义了一个名为multiply的函数,该函数接收两个参数并返回它们的乘积;在程序主入口中,通过遍历包含三组数字的列表pairs,循环调用multiply函数计算每组数字的乘积,并将 "数字 A * 数字 B = 乘积" 的格式打印输出。

断点类型 作用 适用场景
Expression 条件为 true 时暂停 特定逻辑判断
Hit Count 命中次数达到阈值时暂停 循环、函数调用次数
Log Message 输出日志,不暂停 临时跟踪变量
Wait for Breakpoint 依赖另一个断点触发后生效 异步流程、按顺序调试

Expression(表达式条件断点)

  • 作用:仅当指定表达式的结果为true 时,才触发断点并暂停程序。
  • 适用场景:需要在特定逻辑条件下调试(比如 "只有当变量x>10时暂停""只有用户是管理员时暂停")。如x = 10、user.role = 'admin')。

在代码行号左侧单击设置普通断点。-----------右键单击断点,选择 "Edit Breakpoint"。-------------在弹出的输入框中输入一个返回布尔值的表达式(例如 x > 10)。------------------按回车确认,断点会变成橙色。

运行后的结果:

Hit Count(命中次数断点)

  • 作用:仅当断点被 "命中"(代码执行到该行)的次数达到指定值时,才触发暂停。
  • 适用场景:循环、高频调用的代码块(比如 "第 100 次循环时才暂停""函数被调用第 5 次时中断")。输入阈值(支持等于N、大于等于N、是N的倍数等逻辑)。

在切换模式前需要把之前的设置删掉,因为它们之间是或的关系,只要满足一个就行执行

Log Message(日志点 / 无中断日志断点)

  • 作用:不暂停程序,而是在调试控制台输出指定的日志信息(替代临时写console.log)。
  • 适用场景:需要跟踪变量变化但不想打断程序执行(比如 "记录循环中i的每次值""生产环境临时打日志")。(用{变量名}插入动态值,如当前i值:{i})。

输出结果:在调试控制台中可以看到打印的信息

终端中的结果为:

Wait for Breakpoint(等待断点 / 依赖断点)

  • 作用:自身不会主动触发,仅当另一个指定的断点先触发后,才激活并生效。
  • 适用场景:需要按 "流程顺序" 调试(比如 "只有当 A 断点触发后,B 断点才会生效")。选择一个已存在的 "依赖断点"。

先设置命中次数断点:

再设置等待断点:

相关推荐
小蒜学长4 分钟前
基于Django+Vue喵汪联盟宠物领养系统的设计与实现(代码+数据库+LW)
后端·python·django·宠物领养系统·流程规范化
Halo10134 分钟前
VSCode设置护眼背景色
ide·vscode·编辑器
云边有个稻草人13 分钟前
Prometheus Pushgateway教程:离线任务指标上报、Shell与Python示例、远程访问
开发语言·python·prometheus
fanruitian27 分钟前
pycharm 使用anaconda
ide·python·pycharm
Dwzun30 分钟前
基于SpringBoot3+Vue3的油莎豆种植管理系统
java·前端·vue.js·spring boot·后端·python·计算机网络
代码山河9 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行9 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
梯度下降者10 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
“AI国潮设计-小江”11 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
benchmark_cc12 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash