How to use gdb with input redirection?

GdbIo

Gdb Problem Overview


In the Terminal, I have:

myapp < myfileinput

But if I want to use gdb,

gdb myapp < myfileinput

It didn't run correctly.

How to use gdb here?

Gdb Solutions


Solution 1 - Gdb

~$ 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

This is doing the trick for me. Wondering if this was what you were looking for.

Solution 2 - Gdb

Try running your application from within 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: Alternatively:

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

Solution 3 - Gdb

You can try this.

(gdb) run < input.txt

Solution 4 - Gdb

Another alternative seems to be:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser53670View Question on Stackoverflow
Solution 1 - GdbAbhishekView Answer on Stackoverflow
Solution 2 - GdbsarnoldView Answer on Stackoverflow
Solution 3 - GdbSachin View Answer on Stackoverflow
Solution 4 - GdbWalfitsView Answer on Stackoverflow