【问题标题】:GDB is no longer hitting breakpoints in VS Code within docker containerGDB 不再在 docker 容器内的 VS Code 中遇到断点
【发布时间】:2020-12-08 22:49:43
【问题描述】:

一旦我设置了launch.json 并运行gdb 并成功调试了我的代码,直到发生了一些事情并且所有断点都变成了“灰色”并出现这样的消息:

“包含此断点的模块尚未加载或无法获取断点地址。”

但是,调试器附加到正在运行的程序,我什至可以从main 开始执行步骤,但仍然没有命中断点...这是使用cmakegcc-DCMAKE_BUILD_TYPE=DEBUG 标志构建的C++ 项目.

launch.json是这个:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "./MyProject/project",
            "args": [],
            "stopAtEntry": false,
            "cwd": "/home/AA/workspace",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerServerAddress": "/*Cannot write here, but it's fine*/",
            "sourceFileMap": {/*Cannot write here, but it*/}
        },
    ]
}

我该如何解决这个问题?

【问题讨论】:

    标签: docker debugging visual-studio-code cmake gdb


    【解决方案1】:

    我在其他资源中寻找答案,大多数解决方案说如果您使用 gcc 编译项目,您应该使用 -g 选项。这不是我的情况,因为我使用 cmake,但我有一个细节 我调试了在 docker 中运行的代码

    当您使用来自您的用户的 VS 代码中的文件并且 docker 从另一个用户运行项目时,您应该在 launch.json 中添加选项 "sourceFileMap": {}

    "sourceFileMap": {
                    "/home/user/project/file.hpp" : "/home/YourNameBeyondDocker/project/file.hpp",
        ...
    
    

    我在此选项中添加了错误的路径。当我把它拿出来时,我的调试器终于开始打断点了!

    【讨论】:

      猜你喜欢
      • 2016-04-23
      • 2010-12-03
      • 1970-01-01
      • 2020-03-05
      • 2018-04-24
      • 2021-05-11
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      相关资源
      最近更新 更多