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