断点调试
约 368 字大约 1 分钟
2026-08-25
调试组件

调试原理
待调试的文件
# demo.py
def main():
a = 1
b = 2
c = a + b
return c
r = main()
print(r)调试适配器的核心逻辑
# debugpy
import os
import sys
# 获取当前代码文件所在目录
current_dir = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(current_dir, "demo.py")
code = open(file_path, "r").read()
def my_tracer(frame, event, arg):
print(f"事件: {event}, 行号: {frame.f_lineno}")
return my_tracer
sys.settrace(my_tracer)
exec(code)单文件调试
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python 调试程序: 当前文件", // 调试名称
"type": "debugpy", // 调试器类型
"request": "launch", // 调试请求类型
"program": "${file}", // 要调试的程序,使用当前打开的文件
"console": "integratedTerminal" // 在集成终端中运行调试程序
}
]
}工程调试
一、配置
安装依赖
uv add --dev debugpy配置调试器
# Makefile
run-web-debug:
uv run --package web-service python -m debugpy --listen 5678 --wait-for-client app/web-service/main.py配置调试客户端
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Attach to make run",
"type": "debugpy",
"request": "attach", // 使用附加模式
"connect": {
"host": "localhost",
"port": 5678
}
}
]
}二、启动调试
- 启动调试器
make run-web-debug- 启动调试客户端
作业
复现monorepo工程的调试
