我有以下文件 overflow.c
,我正在尝试通过断点调试 in 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;
}
我通过在终端中输入 make overflow
来构建它,然后返回
cc overflow.o -o overflow
我可以在终端中执行 ./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"配置进行调试时,它会运行我的整个代码 without hitting any of my breakpoints (found here)
“C Attach”用于附加到已经运行的应用程序,此处不适用 . 我已将以下内容添加到我的路径中:
PATH="/Applications/Xcode.app/Contents/Developer/usr/bin:${PATH}"
调试“C Run”后,我的调试控制台配置了一堆符号,从我的print语句返回输出,并以 . 结尾
The program '/Users/ahlam/Downloads/workspace/overflow' has exited with code 0 (0x00000000).
EDIT :我也用C尝试过,它有相同的行为 . 制作 hello.cpp
,使用 g++ hello.cpp
构建并调试只运行整个代码而不会遇到任何断点 .
任何帮助表示赞赏 .
1 Answer
您需要生成源级调试信息,您可以使用
clang
中的-g
标志来执行此操作:这样做而不是
make overflow
. 您将在目录中看到名为overflow.dSYM
的文件夹 . 现在调试应该可行 .