用GDB模拟回声输入

问题描述 投票:0回答:3

所以我正在尝试调试一个需要用户通过终端输入一些文本的程序:

$ echo 'here is the text' | ./program

如何在 GDB 中模拟该输入?

stream terminal gdb stdin
3个回答
6
投票

您可以使用重定向的输入来运行程序:

echo 'here is the text' > intput.txt
gdb ./program
(gdb) run < intput.txt

0
投票

您还可以使用

<<<
运算符,而无需将字符串写入文件的额外步骤:

(gdb) r <<< $(echo 'here is the text')

(gdb) r <<< `echo 'here is the text'`

来自

man
bash
页面:

这里是字符串

    此处文档的变体,格式为:

        [n]<<

     该单词会经历波形符扩展、参数和变量扩展、命令替换、算术扩展和引号删除。 不执行路径名扩展和分词。 结果作为单个字符串提供, 附加换行符到其标准输入上的命令(或文件描述符 n,如果指定了 n)。


-1
投票

您可以使用

--args
选项提供程序可执行文件,后跟如下参数,

 % gdb --args ./program arg1 arg2 
© www.soinside.com 2019 - 2024. All rights reserved.