gpt4 book ai didi

c++ - 无法使用 lldb 和 VSCode 调试简单的 C++ 程序

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:32 24 4
gpt4 key购买 nike

我正在尝试在 MacOS Catalina 上使用 lldb 和 VSCode 设置 C++ 调试器。我能够成功编译源代码以输出可执行文件和 .dSYM 文件,并通过 VSCode launch.json 和 tasks.json 文件启动调试器。但是,我无法在我的编辑器中设置断点并将它们反射(reflect)在调试器窗口中。程序只是一直运行。

启动.json

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ build and debug ARMsim",
"type": "cppdbg",
"request": "launch",
"program": "ARMsim",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "lldb",
"preLaunchTask": "g++ build ARMsim"
}
]
}

任务.json

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build ARMsim",
"command": "/usr/bin/g++",
"args": [
"-g",
"${workspaceFolder}/ARMsim.cpp",
"-o",
"${workspaceFolder}/ARMsim"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
}

Program source code, note breakpoints on lines 9 and 10.

Debugger window text.

我唯一的想法是这与 .dSYM 文件有关。我的断点没有反射(reflect)在其中,或者它没有被加载到 lldb 中,或者我误解了这一切的工作原理。我看过其他有关此问题的 StackOverflow 帖子,但我确实是在使用 -g 标志进行编译并且正在创建我的符号文件。

最佳答案

注意,你可以设置断点了。

对我有用的是 launch.json 中的程序项需要如下所示:
“程序”:“${workspaceFolder}/ARMsim”

如果没有完全限定的路径,我会得到一个错误并且实际上无法调试任何东西。

只有那个改变,我的调试器启动,一个外部终端窗口被打开,源文件被激活,我在主函数的第一行停止(因为 stopAtEntry 为真)。继续在断点处停止。

我唯一能想到的另一件事是确保您始终在 VS Code 中打开文件夹,而不是单个文件。否则 VS Code 将不知道工作区文件夹是什么。

我假设其他一切都已设置并正常工作。 XCode 命令行工具、适当的扩展等。如果您还没有更换现有的 g++(我根本不推荐),您实际上只是在调用 clang++。

还有一张小纸条。从 C++11 开始,您不必将文件名转换为 C 字符串。

关于c++ - 无法使用 lldb 和 VSCode 调试简单的 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58804729/

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