gdb不打印数据结构重载方法<<

时间:2014-01-08 20:44:59

标签: c++ gdb

我有一个数据结构,它有一个重载方法'<<'。我想用gdb看一下这个结构,所以我用

(gdb)print s

然而,这不会打印

cout << s

它提供了有关结构s的更多信息,这些信息填满了许多屏幕。我对s中的每一点数据都不感兴趣,我只是想看看'&lt;&lt;'打印的信息发生了什么。如何告诉gdb只打印这些信息?

1 个答案:

答案 0 :(得分:1)

您可以:

call 'operator<< (std::ostream&, myclass&)'(gdbcout, s)

但是GDB不知道cout是什么,所以你必须自己提供:

std::ostream gdbcout (std::cout.rdbuf());

我相信你还会遇到更多困难。在任何类PrintMe()上提供s方法可能更容易,然后从GDB调用它:

print s.PrintMe()