“Just My Code”是vs code调试时跳过系统库、框架和第三方代码只停在用户代码的开关,影响单步执行、调用堆栈显示及断点生效范围,通过launch.json中"justMyCode": true配置,默认开启。

“Just My Code”(仅我的代码)是 VS Code 调试时的一个关键开关,作用是让调试器**自动跳过系统库、框架代码和第三方模块**,只停在你写的代码里。它不是过滤源码,而是控制单步执行(F10/F11)和调用堆栈显示的焦点范围——帮你少看无关细节,更快定位问题。
它怎么影响单步执行
开启后:
- F11(逐语句)不会钻进
requests.get()、json.loads()或 Django 内部方法里,而是直接执行完并跳到下一行你的代码 - F10(逐过程)同样跳过函数内部的非用户代码,保持在当前函数逻辑层推进
- 调用堆栈窗口中,系统/库调用会被折叠成一个 [External Code] 条目,不展开显示冗长路径
它对 python 调试特别实用
Python 项目常依赖大量封装良好的库(如 flask、pandas、Requests),它们内部逻辑复杂但通常无需调试。启用 "justMyCode": true 后:
- 断点只在你自己的
.py文件中生效,不会意外停在 site-packages 里 - 变量监视、表达式求值更稳定,避免因库内部状态引发的干扰
- 配合
console: "integratedTerminal",输入交互也更干净
怎么配置和开关它
在 .vscode/launch.json 的调试配置中添加或修改字段即可:
"justMyCode": true // 默认就是 true,显式写上更清晰
如果某次需要查库源码(比如怀疑 requests 有 bug),临时改成 false,重启调试即可。注意:这个设置只对当前 launch 配置生效,不影响其他配置。
它和符号文件(.pdb)无关
别和 visual studio 的 PDB 符号加载混淆。“Just My Code”在 VS Code 中纯属调试器行为策略,不依赖 .pdb 文件,也不涉及 DLL 加载或符号服务器。它靠的是源码路径识别 + 模块归属判断——VS Code 会把没在工作区打开、不在当前 Python path 下的模块默认视为“非我的代码”。
基本上就这些。不复杂但容易忽略,开起来能省下大量无效单步时间。