gpt4 book ai didi

c++ - 调试 C/C++ 语言不命中断点

转载 作者:太空宇宙 更新时间:2023-11-04 01:49:39 25 4
gpt4 key购买 nike

我有以下文件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;
}

我通过在终端中输入 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”配置进行调试时,它会运行我的整个代码而不会遇到任何断点 ( found here )

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

PATH="/Applications/Xcode.app/Contents/Developer/usr/bin:${PATH}"

调试“C Run”配置后我的调试控制台加载了一堆符号,从我的打印语句返回输出,并以

结尾
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

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

关于c++ - 调试 C/C++ 语言不命中断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46623371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com