VSCode Debug C++:为什么流程不在断点处停止?

李仕杰*_*李仕杰 9 c++ debugging visual-studio-code

VSCode 版本:1.3.1

操作系统版本:Ubuntu 14.04

我在 Ubuntu 14.04 上调试了一个 C++ 项目。我运行 cmake 来生成一个可执行文件并设置 VSCode 配置文件。当我按F5调试时,程序运行良好,但并没有停在断点处!

我的源代码在 ${workspaceRoot}/InfiniTAM

可执行文件在 ${workspaceRoot}/build

我的配置文件:

tasjs.json

    {
"version": "0.1.0",    
"command": "echo",    
"isShellCommand": true,    
"args": ["InfiniTAM!"],    
"showOutput": "always"    
}

launch.json    
{
    "version": "0.2.0",    
    "configurations": [    
        {    
            "name": "C++ Launch (GDB)",    
            "type": "cppdbg",    
            "request": "launch",
            "launchOptionType": "Local",    
            "targetArchitecture": "x64",    
            "program": "${workspaceRoot}/build/InfiniTAM",    
            "args": ["Teddy/calib.txt", "Teddy/Frames/%04i.ppm","Teddy/Frames/%04i.pgm"],    
            "stopAtEntry": false,    
            "cwd": "${workspaceRoot}/build",    
            "environment": [],    
            "externalConsole": true
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

Ben*_*ach 16

注意,您如何编译代码:
为了能够进行调试,您需要g++使用标志进行编译-g

  • 此信息应该贴在 VS Code 调试器页面上...谢谢! (5认同)

LFi*_*ish 1

我很确定

"cwd": "${workspaceRoot}/build"

是不正确的,因为“cwd”应该包含源代码的路径。否则断点无法从源代码映射到您的程序。

您是否尝试将其更改为

"cwd": "${workspaceRoot}/InfiniTAM"

目前我还遇到 VSCode 和 C 的调试问题,这也可能与您的问题有关。因此,我可能会很快更新我的帖子并附上我的问题的链接。