如果调用,许多最近的UNIX stdio实现将刷新所有缓冲区fflush(NULL):
(gdb) call fflush(0)
但通常你不应该这样做:如果你打电话printf(而不是fprintf),那stdout就是你的终端,这通常是线路缓冲的.因此,只要您printf打印了一个新行,缓冲区就会在printf返回后刷新.
GDB 允许您直接从命令行调用 C 函数。所以你可以做
(gdb) call setbuf(stdout, NULL)
现在,唯一的问题是我不知道如何在运行时“获取”实际值stdout。
编辑这可能会有所帮助(来自文档):
call setbuf(fdopen(1, "w"), 0)
| 归档时间: | 
 | 
| 查看次数: | 4879 次 | 
| 最近记录: |