2017-01-28 19 views

ответ

0

Спасибо и я получил простое решение.

(gdb) run $(cat arg.txt) 

Также можно передать вывод команды в качестве аргументов.

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

Когда gdb вызывается через xargs, он по умолчанию является stdin, перенаправляется с /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.