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

如何在M1 Mac的VSCode中使用lldb调试器调试C代码

M1 MacBook VSCode C语言调试方案

前置依赖安装

  • 首先安装Xcode命令行工具,执行终端命令:xcode-select --install,按照弹窗指引完成安装即可,该工具包含原生适配ARM64架构的clang编译器与lldb调试器
  • 打开VSCode,安装官方C/C++ Extension Pack插件,不要使用第三方非官方的C调试类插件

编译配置(tasks.json)

在项目根目录的.vscode文件夹下新建tasks.json文件,配置示例如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "clang_build_c",
            "type": "shell",
            "command": "clang",
            "args": [
                "-g",
                "-arch",
                "arm64",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

注意必须保留-g参数生成调试信息,禁止添加-O1/-O2等编译优化参数,否则会直接导致断点失效

调试配置(launch.json)

同目录下新建launch.json文件,配置示例如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Clang 调试 C 程序",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb",
            "targetArchitecture": "arm64",
            "preLaunchTask": "clang_build_c"
        }
    ]
}

注意preLaunchTask的值必须和tasks.json中的label值完全一致,MIMode必须设置为lldb,不要使用gdb作为调试器,gdb目前对Apple Silicon适配度极低

常见问题排查

  • 确认你使用的是原生ARM64版本的VSCode,而非通过Rosetta转译运行的x86版本,转译版本无法正常调用原生lldb调试器
  • 如果断点被忽略,首先确认你打的断点对应代码是运行时会被执行到的分支,不要打在内联函数、宏定义或者未被调用的代码块上
  • 如果弹出架构不兼容报错,确认编译参数中的-arch arm64未被修改,launch.json中的targetArchitecture为arm64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:24:04