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

标签 c++ gdb

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

#include <iostream>
using namespace std;

int main()
{
  cout << "Hello world" << endl;
  return 0;
}

然后我编译了:

g++ -g test.cc -o test.o

我运行了 gdb 并在 "Hello world" 行放置了一个断点:

$ gdb test.o
(gdb) b 7
(gdb) c

然后 gdb 停在 "Hello world" 行,但是当我运行时

(gdb) s

它无法进入 cout 函数。所以我的问题是,如何进入 cout 函数?

最佳答案

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

查阅系统文档以了解如何安装标准 C 和 C++ 库的调试版本。

关于c++ - 为什么我不能进入GDB 中的C++ cout 标准库函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10167484/

相关文章:

c++ - string.compare for c++

c - 在 Cypress FX3 中初始化 gdb 调试器时出现以下错误

c - GDB:函数返回后中断

c++ - 用于 C++ 的更好的文本 UI 调试器,例如用于 python 的 pudb

c++ - 有没有办法让 GDB 打印一些东西告诉我一行已经执行,而不停止?

c++ - 在我的类 C++ 中创建一个对象

c++ - 如何隐藏临时搜索栏?

c++ - Cocos2D BezierBy 随时间增加速度

c++ - 在同一个赋值表达式中使用 std::move(object) 和 object.method() 。

c - 当我为 put() 函数输入断点时,为什么 GDB 不允许我输入输入?