为什么我不能在GDB中进入C++ cout标准库函数?

sta*_*low 4 c++ gdb

我写了一个简单的test.cc如下:

#include <iostream>
using namespace std;

int main()
{
  cout << "Hello world" << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我编译:

g++ -g test.cc -o test.o
Run Code Online (Sandbox Code Playgroud)

我在线上跑gdb了一个断点"Hello world":

$ gdb test.o
(gdb) b 7
(gdb) c
Run Code Online (Sandbox Code Playgroud)

然后gdb"Hello world"在线上,但是当我跑

(gdb) s
Run Code Online (Sandbox Code Playgroud)

它无法进入该cout功能.所以我的问题是,我该如何进入这个cout功能呢?

gee*_*aur 6

如果它没有与具有调试信息的标准库版本链接,则它不知道如何进入库; 它只能跨越它(也就是说,运行直到控制返回带有调试信息的代码).

请参阅系统文档,了解如何安装标准C和C++库的调试版本.