C++ 无法调试C++;在Mac上的visual studio代码中。Launch.json不在终端中执行程序

C++ 无法调试C++;在Mac上的visual studio代码中。Launch.json不在终端中执行程序,c++,macos,visual-studio-code,C++,Macos,Visual Studio Code,我不熟悉Visual Studio代码。我正在调试一个简单的C++代码。 我编辑了我的launch.json,以便能够像这样调试应用程序: { "version": "0.2.0", "configurations": [ { "name": "(lldb) Launch", "type": "cppdbg", "request": "launch",

我不熟悉Visual Studio代码。我正在调试一个简单的C++代码。 我编辑了我的
launch.json
,以便能够像这样调试应用程序:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Launch", 
            "type": "cppdbg",  
            "request": "launch",      
            "program": "${workspaceFolder}/Calculator",   
            "args": [],   
            "stopAtEntry": false,  
            "cwd": "${workspaceFolder}",  
            "environment": [],  
            "externalConsole": true,  
            "MIMode": "lldb"            
        }        
    ]
}
当我开始调试时,终端在正确的文件夹中打开,但程序没有执行。因此,可视化代码不会在我要签入程序的断点处停止

在my task.json中,我有以下代码:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Echo vars",
            "command": "echo",
            "args": [
                "${env:USERNAME}",
                "workspaceFolder = ${workspaceFolder}"
            ],
            "type": "shell",
            "problemMatcher": []
        },
        {
            "label": "build",
            "type": "shell",
            "command": "g++ -g Calculator.cpp -o Calculator",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": "$gcc"
        }
    ]
}
有人能帮我吗


如评论中所述,请提前感谢:如果您的Calculator.cpp没有使用调试符号编译,即没有-g标志调用的.g++,您将无法调试它

因此,在launch.json中添加一个
prelaunchTask
条目,该条目将确保在启动调试器之前始终执行使用调试符号编译源代码的构建任务

"environment": [],  
"externalConsole": true,  
"MIMode": "lldb",      
"preLaunchTask": "build"
编辑launch.json以将调试器日志输出添加到项目中:

"logging": { "engineLogging": true, "trace": false, "traceResponse": false } 

如注释中所述:如果您的Calculator.cpp没有使用调试符号编译,即没有-g标志调用的.g++,您将无法调试它

因此,在launch.json中添加一个
prelaunchTask
条目,该条目将确保在启动调试器之前始终执行使用调试符号编译源代码的构建任务

"environment": [],  
"externalConsole": true,  
"MIMode": "lldb",      
"preLaunchTask": "build"
编辑launch.json以将调试器日志输出添加到项目中:

"logging": { "engineLogging": true, "trace": false, "traceResponse": false } 

你用调试符号构建代码了吗?嗨,艾伦,谢谢你的回答。恐怕我不知道你说的“调试符号”是什么意思。你能更详细地解释一下吗?你用调试符号构建代码了吗?嗨,艾伦,谢谢你的回答。恐怕我不知道你说的“调试符号”是什么意思。你能更详细地解释一下吗?我把这些都加了进去。此外,在我的task.json中,我还有一句话:“command”:“g++-g Calculator.cpp-o Calculator”,因此我想我是按照您的建议使用调试符号进行编译的。我遵循了不同的教程,我不知道may Mac有什么问题。我想我会再次尝试重新安装VSCode。您可以在VSC中看到,在启动程序之前执行命令
g++-g Calculator.cpp-o Calculator
?您好。谢谢你的回答。是的,该命令在我的程序启动之前执行。实际上,为了确保这一点,我在按下启动调试按钮后删除了可执行文件。命令被完美地执行了。计算器可执行文件已正确创建。在调试控制台中,我始终收到以下消息:“警告:未检测到Debuggee TargetArchitecture,假设为x86_64。”我也收到了此警告消息,它正在工作。是否可以尝试将调试器的日志输出添加到项目中(如更新的答案所示),并将其第一部分添加到OP中?我还将stopAtEntry设置为true。我添加了所有这些。此外,在我的task.json中,我还有一句话:“command”:“g++-g Calculator.cpp-o Calculator”,因此我想我是按照您的建议使用调试符号进行编译的。我遵循了不同的教程,我不知道may Mac有什么问题。我想我会再次尝试重新安装VSCode。您可以在VSC中看到,在启动程序之前执行命令
g++-g Calculator.cpp-o Calculator
?您好。谢谢你的回答。是的,该命令在我的程序启动之前执行。实际上,为了确保这一点,我在按下启动调试按钮后删除了可执行文件。命令被完美地执行了。计算器可执行文件已正确创建。在调试控制台中,我始终收到以下消息:“警告:未检测到Debuggee TargetArchitecture,假设为x86_64。”我也收到了此警告消息,它正在工作。是否可以尝试将调试器的日志输出添加到项目中(如更新的答案所示),并将其第一部分添加到OP中?我还将stopAtEntry设置为true。