C++ 调试C/C++;未命中断点的语言

C++ 调试C/C++;未命中断点的语言,c++,c,macos,visual-studio-code,C++,C,Macos,Visual Studio Code,我有以下文件overflow.c,我正试图通过Visual Studio code macOS中的断点调试该文件: #include <stdio.h> int main(void) { int n = 1; for (int i = 0; i < 64; i++) { printf("%i\n", n); n = n * 2; } return 0; } 我可以在终端中执行/overflow来运行它,

我有以下文件
overflow.c
,我正试图通过Visual Studio code macOS中的断点调试该文件:

#include <stdio.h>

int main(void) {
    int n = 1;
    for (int i = 0; i < 64; i++)
    {
        printf("%i\n", n);
        n = n * 2;
    }
    return 0;
}
我可以在终端中执行
/overflow
来运行它,这很有效。我安装了Microsoft的C/C++扩展。我的
launch.json
如下所示:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C Run",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/overflow",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}
当我使用“C Run”配置进行调试时,它运行我的整个代码,而不会命中我的任何断点()

“C附加”用于附加到已运行的应用程序,此处不适用。我已将以下内容添加到我的路径中:

PATH="/Applications/Xcode.app/Contents/Developer/usr/bin:${PATH}"
调试“C Run”config后,我的调试控制台加载一堆符号,返回打印语句的输出,并以

The program '/Users/ahlam/Downloads/workspace/overflow' has exited with code 0 (0x00000000).

< >编辑< /强>:我也尝试了C++,它也有相同的行为。制作了一个

hello.cpp
,使用
g++hello.cpp
构建,调试只运行了整个代码,没有碰到任何断点


非常感谢您的帮助。

您需要生成源代码级调试信息,您可以使用
clang
中的
-g
标志执行此操作:

clang -g overflow.c -o overflow

这样做,而不是使溢出。您将在目录中看到一个名为
overflow.dSYM
的文件夹。调试现在应该可以工作了

也许是开始调试而不是运行?我进入调试菜单,点击绿色的播放按钮,鼠标悬停在上面说,开始调试,所以我想我正在调试。你有没有其他的工作流程?谢谢你的回答。我还想声明,在linux环境中编译时,同样的事情也适用于g++。如果您将-g arg用于g++或clang,您将在vscode中获得良好的调试效果。
clang -g overflow.c -o overflow