如何将文本文件中的参数传递给 运行 gdb 下的程序?

How do I pass the arguments from a text file to run a program under gdb?

我想像gdb下的命令那样使用函数

$ cat arg.txt | xargs ./binary

有什么办法可以做到吗?

当通过 xargs 调用 gdb 时,它的标准输入默认从 /dev/null 重定向。显然 gdb 需要 stdin 来读取和执行用户输入,但它不能,因为 stdin 是 /dev/null.

解决此问题的一种方法是使用 xargs--arg-file:

xargs --arg-file arg.txt gdb --args ./binary

参见man xargs

   -a file, --arg-file=file
          Read items from file instead of standard input.  If you use
          this option, stdin remains unchanged when commands are run.
          Otherwise, stdin is redirected from /dev/null.

谢谢,我找到了一个简单的解决方案。

(gdb) run $( cat arg.txt )

也可以将命令的输出传递为参数。

(gdb) run $( ruby -e 'print( "text as arguments" )' )