You need to enable JavaScript to run this app. VSCode Remote-SSH调试FastAPI时路由内断点无法触发问题排查
优惠活动
大模型
产品
解决方案
定价
更多

VSCode Remote-SSH调试FastAPI时路由内断点无法触发问题排查

VSCode调试FastAPI普通def路由断点不触发问题

问题现象

  • 基础调试链路正常:通过VSCode Remote-SSH扩展连接GCloud虚拟机上的代码库运行调试,调试器可以成功命中文件中非路由部分的代码断点,模块初始化阶段的app = FastAPI()、print('here')位置的断点均可正常触发。
  • 异常表现:普通def定义的路由函数内部的断点始终无法触发,但对应接口可以正常访问并返回预期数据。
  • 对照测试:将路由函数从普通def替换为async def定义后,断点可以正常命中。
  • 场景约束:对接SQLite数据库的开发场景下,按照FastAPI官方SQL数据库教程的推荐,默认场景需使用普通def定义路由,仅在可配置的特定场景下使用async def,因此需要适配普通def路由的调试方案。
  • 排查进展:已参考相关技术社区《Debug FastAPI application in VSCode》主题帖提到的各类解决方案,问题仍未解决;初步判断Remote-SSH连接模式不会导致该问题,毕竟非路由部分的断点可正常触发,基础调试链路通畅。

复现代码

直接参照FastAPI官方调试教程编写的测试代码如下:

import uvicorn
from fastapi import FastAPI

app = FastAPI()  # 启动文件时此处的断点可正常触发
print('here')    # 启动文件时此处的断点可正常触发


@app.get("/")
def root():
    a = "a"   # 此处的断点无法正常触发
    b = "b" + a
    return {"hello world": b}  # 接口可成功返回数据


if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=5002)

当前调试配置

目前使用的是VSCode默认的「Python: Current File」调试配置,对应的launch.json内容如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

内容的提问来源于stack exchange,提问作者SS Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.08 06:06:03