在 C++ 的 fstream 上使用 gdb
using gdb on fstream of c++
我的代码中有一个 std::fstream
对象,比如 std::fstream input
用于从文件中读取值。如何检查 gdb 调试器中的输入状态?我试过 print input.fail()
,但它说:
couldn't find method std::ifstream::fail
这很可能是因为您没有为 libstdc++ 安装调试符号(这是 std::fstream
所在的位置)。
如果你只是尝试打印 input
变量,你会得到类似这样的东西,没有 libstdc++ 的调试符号:
(gdb) p input
= <incomplete type>
我在 Fedora 上重现了这个问题,在我使用以下命令安装调试信息后,问题消失了(input
变量已成功打印并调用了 input.fail()
):
sudo debuginfo-install libstdc++
另见 std::stringstream
的类似问题:
https://www.reddit.com/r/learnprogramming/comments/5dwtbb/gdb_looking_into_streams/
我的代码中有一个 std::fstream
对象,比如 std::fstream input
用于从文件中读取值。如何检查 gdb 调试器中的输入状态?我试过 print input.fail()
,但它说:
couldn't find method std::ifstream::fail
这很可能是因为您没有为 libstdc++ 安装调试符号(这是 std::fstream
所在的位置)。
如果你只是尝试打印 input
变量,你会得到类似这样的东西,没有 libstdc++ 的调试符号:
(gdb) p input
= <incomplete type>
我在 Fedora 上重现了这个问题,在我使用以下命令安装调试信息后,问题消失了(input
变量已成功打印并调用了 input.fail()
):
sudo debuginfo-install libstdc++
另见 std::stringstream
的类似问题:
https://www.reddit.com/r/learnprogramming/comments/5dwtbb/gdb_looking_into_streams/