如何在使用gdb调试时从stdin读取输入?

5
我正在运行gdb(或cgdb),但在调试过程中需要从stdin获取一些数据。那么,在我使用gdb调试程序的时候,如何向程序插入一些文本或数字作为输入呢?
谢谢您提前的帮助!

你能够附加到已经运行的程序吗? - ks1322
如果你不是在运行gdb,你会怎么做呢?如果不能完全相同,你可能可以用gdb执行类似的操作。 - Mark Plotnick
例如,如果我使用'scanf'并尝试调试程序,程序在某个时刻将期望从stdin中获取一些数据。因此,当我跨越scanf行并输入一些内容时,我无法继续调试。 - user6299344
1个回答

2
如果你是从shell中进行操作,你可以这样做:
gdb myprogram
gdb> run params ... < input.txt

我如何在不事先保存在txt文件中的情况下输入一些数据? - user6299344
@Banish,你在gdb中读取stdin时不需要任何特殊操作,只需在程序中使用scanffgets或其他方法即可。 - David Ranieri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接