断点无法进入内置或第三方库代码是因调试器默认启用“Just My Code”;可通过settings.json设"debugpy.debugJustMyCode": false全局禁用,或在launch.json中配置"justMyCode": false单项目禁用。

如果您在 VS Code 中调试 Python 程序时发现断点无法进入内置函数或第三方库代码,这通常是因为调试器默认启用了“Just My Code”(仅我的代码)行为。该选项会自动跳过系统、标准库和第三方模块的执行路径,只聚焦于用户编写的源码部分。
本文运行环境:MacBook Pro M3,macOS Sequoia
一、Just My Code 的基本含义与作用机制
Just My Code 是 Python 调试器(debugpy)的一项控制策略,它通过识别代码来源与符号信息,决定是否在单步执行(Step In)或继续执行(Continue)过程中进入非用户代码区域。当启用时,调试器将跳过 __init__.py、builtins.py、requests/ 等路径下的模块,仅在当前工作区内的 .py 文件中响应断点与单步操作。
二、通过 settings.json 全局禁用 Just My Code
该方式影响所有 Python 调试会话,无需修改每个项目的 launch.json。
1、按下 Ctrl + ,(Windows/Linux)或 ⌘ + ,(macOS)打开设置界面。
2、点击右上角的“打开设置(JSON)”按钮。
3、在打开的 settings.json 文件中添加如下行:
"debugpy.debugJustMyCode": false
三、在 launch.json 中为单个项目禁用 Just My Code
该方式仅对当前工作区生效,适合混合调试需求的项目,例如需同时调试自定义逻辑与 requests 库内部重试机制。
1、点击左侧活动栏中的“运行和调试”图标(或按 Ctrl + Shift + D)。
2、点击“创建 launch.json 文件”,选择环境为Python。
3、在生成的 .vscode/launch.json 文件中,找到 configurations 数组内的配置项,在其内部添加或修改字段:
"justMyCode": false
四、验证 Just My Code 是否已禁用
禁用后,调试器应能响应对内置函数(如 open()、json.loads())或第三方库方法(如 requests.Session.send())的 Step Into 操作。
1、在调用 json.loads(data_str) 的行号左侧单击设置断点。
2、按 F5 启动调试。
3、执行到该断点后,按 F11(Step Into)。
4、若成功跳转至 json/__init__.py 中的对应函数定义处,则表示 Just My Code 已被禁用。










