You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mediapipe如何在VS Code+Bazel环境下配置代码调试器

Mediapipe VS Code断点调试配置方案

完全可以通过VS Code断点调试替代逐行打日志的低效排查方式,具体配置如下:

基础概念澄清

  • buildifier不是Bazel编译器:它仅用于格式化、校验Bazel的BUILD/WORKSPACE配置文件,不参与代码编译、运行流程,未安装时可暂时留空配置项,不影响调试功能,后续需要规范Bazel配置格式时再安装即可。
  • Bazel插件完全兼容bazelisk,直接在插件的Bazel: Executable配置项中填写本地bazelisk的绝对路径即可,插件调用时会自动匹配项目要求的Bazel版本,和终端中直接使用bazelisk的行为完全一致。

配置前注意

你日常使用的-c opt是发布优化编译参数,会剔除调试符号、做代码指令优化,会导致断点无法命中,调试时必须替换为-c dbg参数编译,保留完整调试信息。

详细配置步骤

  1. 前置插件准备:除已安装的Bazel插件外,安装VS Code官方C/C扩展,用于提供C代码断点调试能力。
  2. 配置Bazel插件:打开VS Code设置,找到Bazel扩展配置页,在执行路径项填入本地bazelisk的绝对路径,buildifier路径无需求可以留空。
  3. 配置调试启动项:在项目根目录新建.vscode/launch.json文件,写入以下配置:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Hand Tracking",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_cpu",
            "args": [
                "--calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_desktop_signn.pbtxt"
            ],
            "cwd": "${workspaceFolder}",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable GDB pretty printing",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build Mediapipe Debug"
        }
    ]
}
  1. 配置预编译任务:在项目根目录新建.vscode/tasks.json文件,写入以下配置,实现调试前自动完成debug模式编译:
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build Mediapipe Debug",
            "type": "shell",
            "command": "bazel build -c dbg --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": "$gcc"
        }
    ]
}

常见问题处理

  • 断点显示为灰色未命中:先确认使用-c dbg参数编译,未添加-O2/O3等优化参数,再触发C/C++扩展重新索引代码即可。
  • 代码头文件飘红:在C/C++扩展配置中指定Bazel生成的compile_commands.json路径,Bazel插件可自动生成该文件,无需手动配置头文件路径。
  • 需要添加运行参数:直接修改launch.json中args数组的内容,参数写法和终端bazel run后传入的参数完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:51:59