我尝试使用GDB在C++项目的VSCode中运行调试器,但在运行调试器时总是出现此错误。我已经设置了一个证书和所有东西,但它仍然给我此错误(我运行的是macOS Catalina 版本10.15.4)。
下面是我的launch.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": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/Assignment8",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
下面是我的tasks.json文件
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "echo",
"type": "shell",
"command": "make",
"options": {
"cwd": "${workspaceFolder}/build"
},
}
]
}
另外,我看到了一些关于创建.gdbinit文件的内容,我在根目录中创建了该文件,并在其中放置了以下命令:
set startup-with-shell off
任何帮助这个问题将不胜感激。
6条答案
按热度按时间7rtdyuoh1#
我也有同样的问题。或多或少是这样的:
错误:无法启动调试。命令“-exec-run”的意外GDB输出。创建进程/usr/bin/时出错,(错误2)。
要修复,请尝试使用较低版本的gcc / g++(v_9左右),特别是较低版本的gdb(v_10,安装的实验版本是问题,改为9.3和OK)。
b4lqfgs42#
json中的“program”参数应该是可调试可执行文件的路径。
我猜你使用的是g++。如果你使用-g开关,你的程序将是可调试的。因此你的编译将是
这将使可调试的可执行文件成为“a.out”。
确保“program”参数指向该文件。
我希望你是遵循所有这些步骤。
svgewumm3#
在我的例子中,这个问题似乎与gdb 10. 2 -1直接相关,将gdb降级到9. 2 -1瞬间解决了这个问题。
ohfgkhjo4#
我也遇到过类似的问题。问题是文件夹的名字上有重音符号(),比如
path/to/elétron
。解决办法是去掉重音符号。改为path/to/eletron
。n53p2ov05#
尝试使用此文件结构
launch.json
}
tasks.json
}
nmpmafwu6#
2022年11月更新
我尝试了前面的答案中描述的降级选项,但没有效果。结果发现,问题是由以下事实引起的:在macOS的最新版本中,达尔文内核限制了一个进程控制另一个进程的能力,而这正是
gdb
调试器必须做的。解决方案是对
gdb
二进制文件进行代码签名。有关如何执行此操作的说明,请参见https://sourceware.org/gdb/wiki/PermissionsDarwin。
**注意:**使用
brew
安装gdb
实际上现在警告您此要求。以下摘录嵌入在安装后打印的消息中,并引用了完全相同的URL。