Подтвердить что ты не робот

Как использовать gdb с перенаправлением ввода?

в терминале, я

    myapp < myfileinput

Но если я хочу использовать gdb,

    gdb myapp < myfileinput

Это не работает правильно.

Как использовать gdb здесь?

4b9b3361

Ответ 1

~$ gdb <executable>

GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/abhishek/maxtest...done.

(gdb) run < input.txt

Это делает трюк для меня. Удивление, если это то, что вы искали.

Ответ 2

Попробуйте запустить приложение из gdb?

(gdb) file /usr/bin/head
Reading symbols from /usr/bin/head...(no debugging symbols found)...done.
(gdb) run -2 < /etc/passwd
Starting program: /usr/bin/head -2 < /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh

Program exited normally.
(gdb)

EDIT: Альтернативно:

gdb -q -ex 'set args -2 < /etc/passwd' /usr/bin/head
Reading symbols from /usr/bin/head...done.

(gdb) run
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh

Program exited normally.
(gdb) quit

Ответ 3

Вы можете попробовать это.

(gdb) run < input.txt

Ответ 4

Другая альтернатива выглядит так:

$ gdb /usr/bin/head
(gdb) set args 'cat /etc/passwd'
(gdb) run