首页/新闻资讯/正文详情

函数断点:VS Code 里最被低估的调试神器

发布时间:2026/9/26 11:48:37 来源:云帆数科 栏目:资讯中心
函数断点:VS Code 里最被低估的调试神器
如果你还在用print()大法调试代码那你可能错过了一个更优雅的工具。假设你有这样一个 Python 文件defadd(a,b):returnabdefmain():print(hello world)print(add(1,2))print(do something)radd(1,2)print(r)if__name____main__:main()这段代码很简单但如果add函数的行为不符合预期你想知道它到底被调用了几次、每次传入了什么参数用print()就得手动加好几处。而用函数断点你只需要告诉 VS Code“每次调用add的时候把程序停下来让我看看。”函数断点是什么函数断点不依赖代码的具体行号而是基于函数名来设置。你告诉调试器“我要在add被调用时暂停”它就真的会在每次add被调用时停下来不管你是在第几行调用的。设置方式很简单在调试面板的BREAKPOINTS区域点击按钮选择Add Function Breakpoint输入函数名比如add即可。函数断点在列表中会显示为一个红色三角形图标和普通行断点红色圆点区分开。输入add你也可以直接使用命令面板搜索 function bdebug代码的时候只要代码执行到这个函数断点就会停在这个函数上面为什么它比行断点更好用行断点的问题在于你需要知道代码在哪一行。如果函数被调用的地方很多你要么在每一处都设一个断点要么在函数定义的第一行设一个断点——但这样你就无法区分“第一次调用”和“第二次调用”的区别。函数断点的优势在于你只关心“谁调用了这个函数”不关心它被调用的位置。这在你追踪一个被多处调用的工具函数、或者调试一个第三方库的入口函数时特别有用。以上面的代码为例如果你在add的定义处设置行断点程序会在add的第一行暂停。但如果你设置函数断点你可以在暂停时清楚地看到调用栈——是main里的哪一行调用了它a和b分别是什么值。什么时候该用函数断点追踪工具函数的调用时机你想知道一个公共函数到底被哪些地方调用了调试第三方库或框架源码不在你的项目中但你可以在调用它的函数上设断点调试回调函数你不知道回调会在哪个时间点被触发函数断点可以帮你捕获它函数断点不是“更高级的断点”而是“更适合特定场景的断点”。当你发现自己反复在多个位置手动加print()来追踪同一个函数的调用时就该换成函数断点了。

相关推荐

4个让AI助手变强的MCP神器,小白也能轻松上手大模型开发!TaoToken统一Key配置实战
4个让AI助手变强的MCP神器,小白也能轻松上手大模型开发!TaoToken统一Key配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:48:31

用 MCP 给 AI 编辑器接上“外挂”:TaoToken 统一 Key 打通 Figma、数据库、浏览器
用 MCP 给 AI 编辑器接上“外挂”:TaoToken 统一 Key 打通 Figma、数据库、浏览器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:48:31

【第46期】Python 项目规范:把分析器、待办和测试收成可提交的目录
【第46期】Python 项目规范:把分析器、待办和测试收成可提交的目录

【第46期】Python 项目规范:把分析器、待办和测试收成可提交的目录 CSDN 完整教程 系列:《从小白到 AI 大模型开发工程师的进阶之路》 技术点:AI-0134 Python 项目规范 主人公:小蓝伞 前置:AI-0130 测试;A… · 2026/9/26 11:48:31

2026国自然评审改革下,跨学科基金申请书如何打动多元评审专家?
2026国自然评审改革下,跨学科基金申请书如何打动多元评审专家?

每年国自然申报季,青年学者群里总少不了“本子写好了,方向太交叉怕被毙”“创新点很大,但评审专家背景太杂怎么讲”这类焦虑。2026年的评审改革,把这个矛盾又放大了整整一轮:分类评审更细、函评专家匹配更看重交叉学科… · 2026/9/26 12:26:31

睡岗检测实战:基于YOLOv8的VOC数据集训练与ONNX部署指南
睡岗检测实战:基于YOLOv8的VOC数据集训练与ONNX部署指南

简介:面向需要训练睡岗检测模型的算法工程师与研究人员,这套采用VOC标记格式的数据集覆盖了桌子上趴睡、埋头睡觉、座椅上靠睡、平躺等多种典型睡姿,适合用于安防监控、工厂园区等场景下的目标检测算法开发与评估。资源包整体大小约422.3MB&a… · 2026/9/26 12:26:31

Java泛型从类型擦除到实战:通配符、Feign与避坑指南
Java泛型从类型擦除到实战:通配符、Feign与避坑指南

如果你写Java已经有一两年,肯定被泛型坑过不少次。不管是写工具类、封装BaseDao,还是调用OpenFeign、Spring的RestTemplate,泛型都是绕不开的话题。我见过很多人面试时能背出“泛型是类型参数化”,但真到写代码时,连&l… · 2026/9/26 12:26:31

Windsurf 免积分使用 Claude 和 GPT5.2:settings.json 配置骨架与验证
Windsurf 免积分使用 Claude 和 GPT5.2:settings.json 配置骨架与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 12:26:31

C#上位机集成YOLOv8+OpenVINO+ByteTrack实现实时目标检测与跟踪
C#上位机集成YOLOv8+OpenVINO+ByteTrack实现实时目标检测与跟踪

简介:C#结合OpenVINO与ByteTrack的YOLOv8实时目标检测Demo,面向需要在C#环境中落地视觉检测与多目标追踪的开发者。资源以完整工程形式提供,涵盖YOLOv8模型转换、OpenVINO推理、视频流处理及ByteTrack轨迹关联等核心环节,解决模型… · 2026/9/26 12:26:31

3分钟搞懂BI核心逻辑:Power BI实操与AI大模型新玩法
3分钟搞懂BI核心逻辑:Power BI实操与AI大模型新玩法

很多人一听到BI这个词,脑子里立刻弹出“商业智能”“数据仓库”“仪表盘”这些高大上的词,然后就开始犯晕。其实BI没那么玄乎,它就是一门“把数据变成决策”的手艺活。今天我打算用一篇完全没废话的实操笔记,带你3分钟搞懂BI的核心… · 2026/9/26 12:26:21

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码