Visual Studio 上的 GDB 代码试图从 non-existent 目录读取 headers

GDB on Visual Studio Code trying to read headers from a non-existent directory

我正在尝试使用来自 vscode 的 gdb 调试用 c++ 编写的程序。

当调试器从 header fstream 调用函数 ifstream() 时,无法找到 header 文件,因为 gdb 正在目录 /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/ ,它不存在并导致错误的代码执行。 我已经通过在终端的 gdb 上使用命令 directory /usr/include/c++/10.2.0/ 解决了这个问题,但是当我从 vscode.

使用 gdb 时,这似乎并没有解决问题

Error message from vscode

提前致谢。

终于,我解决了这个问题。 执行 gdb 时,它会在用户的主目录(Unix 系统)中查找名为 .gdbinit 的配置文件。要为 gdb 提供正确的 header 目录,只需在前面提到的文件上输入命令 source {your header's directory} 即可。

如果 Visual Studio 无法识别 c/c++ 函数,只需将 header 的位置放在 settings.json 文件中 ("C_Cpp.default.includePath": ["your header's directory"]

Here's more info about gdb init file