首页 > 解决方案 > Visual Studio Code 上的 GDB 尝试从不存在的目录中读取标头

问题描述

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

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

来自 vscode 的错误消息

提前致谢。

标签: c++visual-studio-codegdbvscode-debugger

解决方案


最后,我解决了这个问题。.gdbinit当 gdb 被执行时,它会在用户的主目录(Unix 系统)上寻找一个配置文件。要为 gdb 提供正确的标头目录,只需将命令source {your header's directory}放在前面提到的文件上即可。

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

这是有关 gdb 初始化文件的更多信息


推荐阅读