我有一个数据结构,它有一个重载方法'<<'。我想用gdb看一下这个结构,所以我用
(gdb)print s
然而,这不会打印
cout << s
它提供了有关结构s的更多信息,这些信息填满了许多屏幕。我对s中的每一点数据都不感兴趣,我只是想看看'&lt;&lt;'打印的信息发生了什么。如何告诉gdb只打印这些信息?
答案 0 :(得分:1)
您可以:
call 'operator<< (std::ostream&, myclass&)'(gdbcout, s)
但是GDB不知道cout
是什么,所以你必须自己提供:
std::ostream gdbcout (std::cout.rdbuf());
我相信你还会遇到更多困难。在任何类PrintMe()
上提供s
方法可能更容易,然后从GDB调用它:
print s.PrintMe()