web-dev-qa-db-fra.com

Comment utiliser gdb avec redirection d'entrée?

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?

50
user53670
~$ 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.

84
Abhishek

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
10
sarnold

Vous pouvez essayer ça.

(gdb) exécutez <input.txt

2
Sachin

Une autre alternative semble être:

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