dans le terminal, j'ai
myapp < myfileinput
Mais si je veux utiliser gdb,
gdb myapp < myfileinput
Cela ne s'est pas déroulé correctement.
Comment utiliser gdb ici?
~$ 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
Cela fait l'affaire pour moi. Vous vous demandez si c'est ce que vous cherchiez.
Essayez d'exécuter votre application à partir de 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: Alternativement:
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
Vous pouvez essayer ça.
(gdb) exécutez <input.txt
Une autre alternative semble être:
$ gdb /usr/bin/head
(gdb) set args `cat /etc/passwd`
(gdb) run