Weaglew 2023-05-24 17:21 采纳率: 25%
浏览 18

Mac使用VSCode单步调试不进代码

问题遇到的现象和发生背景

在mac中使用vscode调试docker环境下的代码,program指定为已经make出的可执行程序
launch.json配置如下图所示,在win上可以成功单步进入代码中,在mac中直接执行完毕,不会进入断点代码。

        {
            "name": "Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/make/ffmpeg_g",
            "targetArchitecture": "arm64", 
            "stopAtEntry": true,
            "args": ["-i","${workspaceFolder}/files/1.wav","${workspaceFolder}/files/.srm"],
            "cwd": "${workspaceFolder}",
            "environment": [],
            "MIMode": "gdb",
            "externalConsole": false,
            "miDebuggerPath": "/usr/bin/gdb"
        }

操作环境、软件版本等信息

mac中vscode连接本地docker容器

我想要达到的结果

可以成功单步进入代码中

  • 写回答

1条回答 默认 最新

  • @晓码自在 2023-05-24 17:32
    关注

    该回答引用ChatGPT4与博主@晓码自在合作编写:

    根据你的描述,这是一个在macOS上使用VS Code远程调试Docker容器内C/C++程序的问题。
    根据你提供的launch.json配置,我发现几个可能的原因:

    1. miDebuggerPath 指定的gdb路径不正确。在macOS上,gdb路径应该为 /usr/bin/gdb,你的配置已经正确,所以应该不是这个原因。
    2. program指定的可执行程序路径不正确。由于在Docker容器内,program需要指定容器内的路径,所以如果指定的仅为宿主机路径,会导致无法进入断点。你应该指定容器内路径,比如 /workspace/make/ffmpeg_g。
    3. Docker容器内缺少gdb调试依赖。Docker容器内需要安装gdb相关的调试包,否则miDebuggerPath指定的gdb无法正常工作。
    4. VS Code C/C++扩展无法连接Docker环境。目前VS Code的C/C++扩展支持远程连接SSH和Windows子系统的Linux环境进行远程调试,但对Docker支持的还不完全。这可能也是一个原因。
      根据这些可能的原因,这里 are 一些解决的试的步骤:
    5. 检查miDebuggerPath设置,确保使用macOS上的gdb路径 /usr/bin/gdb
    6. 将program设置为容器内的绝对路径,比如/workspace/make/ffmpeg_g
    7. 确认Docker镜像或容器内安装了gdb相关的调试依赖,如binutils等
    8. 尝试安装Microsoft C/C++ for Visual Studio Code扩展,它对Docker支持更好,可替换C/C++扩展
    9. 在启动配置中添加preLaunchTask设置为"docker-start",这可以确保每次启动调试会首先启动Docker

    其中,我推荐尝试第2步和第3步,指定容器内路径和安装gdb依赖。这两个问题最有可能导致无法进入断点。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月24日

悬赏问题

  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?