69 votes

Comment utiliser gdb avec la redirection d'entrée ?

Dans le terminal, j'ai :

myapp < myfileinput

Mais si je veux utiliser gdb,

gdb myapp < myfileinput

Il n'a pas fonctionné correctement.

Mode d'emploi gdb ici ?

117voto

Abhishek Points 435
~$ 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

Ceci fait l'affaire pour moi. Je me demandais si c'était ce que vous recherchiez.

13voto

sarnold Points 62720

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)

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

2voto

Sachin Points 29

Vous pouvez essayer ceci.

(gdb) run < input.txt

0voto

Walfits Points 121

Une autre alternative semble être :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X