Unable to start debugging. Launch options string provided by the project system is invalid. Unable to determine path to debugger. Please specify the "MIDebuggerPath" option
如果您使用的是Linux系统,并且遇到了VSCode中的调试问题,提示需要指定MIDebuggerPath,这通常意味着您需要在launch.json配置文件中指定GDB或LLDB调试器的路径。根据您提供的launch.json配置,您已经为Linux配置了MIMode为gdb,并且尝试将miDebuggerPath设置为gdb。如果这不起作用,可能是因为VSCode无法在默认路径中找到gdb,或者您根本没有安装gdb。
解决步骤
sudo apt-get update
sudo apt-get install gdb
找到GDB的安装路径: 如果已经安装了GDB,可以通过在终端输入which gdb来找到其安装路径。
更新launch.json配置: 根据which gdb命令的输出,更新launch.json中的miDebuggerPath。例如,如果which gdb输出的路径是/usr/bin/gdb,则需要将launch.json中的相应部分更新为:
json
注意事项
按照以上步骤操作后,您应该能够解决VSCode中的调试问题。如果问题仍然存在,请检查VSCode的输出或调试控制台中是否有更具体的错误信息,这可能会提供更多关于问题的线索。
(base) zy@lfdeMacBook-Pro ~ % which gdb gdb not found
如果在您的系统中使用which gdb命令时返回“gdb not found”,这意味着GDB(GNU Debugger)尚未安装在您的Mac上。由于您提到正在使用的是Linux系统的配置,但实际上是在Mac上操作,这可能导致了一些混淆。首先,确保您的环境设置正确。根据您的描述,似乎您是在尝试在macOS上配置Linux的调试环境,但是我们将按照macOS上安装GDB的步骤来进行。
在macOS上安装GDB
macOS默认使用LLDB作为其调试器,它是与GDB相似的调试工具,随Xcode Command Line Tools一起安装。如果您特别需要GDB,可以按照以下步骤安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
使用Homebrew安装GDB: 安装Homebrew后,可以通过以下命令安装GDB:
bash
配置VSCode以使用GDB
安装GDB后,您需要更新VSCode的launch.json配置文件,以确保它指向正确的miDebuggerPath。根据GDB的安装路径更新您的配置,例如:
json
"osx": {
"MIMode": "gdb",
"miDebuggerPath": "/usr/local/bin/gdb",
"program": "${workspaceFolder}/bin/main"
},
注意
按照这些步骤操作后,您应该能够在macOS上使用GDB进行调试。如果遇到任何问题,请检查VSCode的终端和调试控制台输出,以获取更多
task。json
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: g++ 生成活动文件", "command": "/usr/bin/g++", // g++的路径 "args": [ "-fdiagnostics-color=always", // 颜色 "-g", // 调试信息 "-Wall", // 开启所有警告 "-std=c++14", // c++14标准 "${file}", // 文件本身,仅适用于C++基础知识教学,无法同时编译所有文件 // "${fileDirname}/*.cpp", // 文件所在的文件夹路径下所有cpp文件 "-o", // 输出 "${workspaceFolder}/release/${fileBasenameNoExtension}" // 文件所在的文件夹路径/release/当前文件的文件名,不带后缀 ], "options": { "cwd": "${fileDirname}" // 文件所在的文件夹路径 }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: /usr/bin/g++" } ] }
launch.json
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) 启动", "type": "cppdbg", // C++调试 "request": "launch", "program": "${workspaceFolder}/release/${fileBasenameNoExtension}", // 文件所在的文件夹路径/release/当前文件的文件名,不带后缀 "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", // 文件所在的文件夹路径 "environment": [], "externalConsole": false, "MIMode": "gdb", "linux": { "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", // "program": "${workspaceFolder}/bin/main" }, "osx": { "MIMode": "lldb", "miDebuggerPath": "lldb-mi", "program": "${workspaceFolder}/bin/main" },// "miDebuggerPath": "gdb", // "MIMode": "lldb", // "MIDebuggerPath": "lldb-mi", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "将反汇编风格设置为 Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++ 生成活动文件", // tasks.json的label }, { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", // 当前文件 // "program": "demo.py", // 指定文件 "console": "integratedTerminal", "justMyCode": true // false表示可以进入第三方库(如Pytorch)里进行调试 } ] }