当我在 fflush(stdout) 处并且在 GDB 中中断时,我可以在实际打印之前知道 stdout 中有什么吗?
我如何才能知道任意时间点标准输出中有什么内容?
如果您自己分配一个缓冲区并将其传递给setvbuf,我想你可以在刷新之前访问它,因为它一开始就是你的。
EDIT:您的评论使您的意图更加明确,但您想要的并不容易:
- 如上所述设置您自己的缓冲区,
- Set a 读取观察点 on
stdout
,
- 看着你的程序慢得像爬行一样。
从那时起,gdb
每次都会断anything访问stdout
,您可以检查缓冲区是否有变化、奇怪的输出等。
也就是说,这根本不是一个理想的解决方案。更好的方法是在代码中的任何地方使用支持日志记录的输出函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)