2014-01-08 32 views
0

我有一个数据结构s有一个重载的方法'< <'。我想看看用gdb这种结构,所以我用gdb没有打印数据结构过载方法<<

(gdb)print s 

然而,这并不能打印

cout << s 

它提供了很多关于结构S的更多信息,填补了很多屏幕。我对s中的每一点数据都不感兴趣,我只想看看'< <'打印的信息会发生什么。我如何告诉gdb只打印这些信息?

回答

1

你也许能够:

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

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

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

而且我敢肯定你除此之外,还会有更多的困难。在任何类s上提供PrintMe()方法可能更容易,然后从GDB调用该方法:

print s.PrintMe()