[ale] OT: Sending Commands to GDB

Tim Watts tim at cliftonfarm.org
Wed Jan 19 09:15:48 EST 2011


Update:

wrote this script (gdbin):

#!/bin/bash
echo pwd
sleep 3
echo quit

then tried this:

$ ./gdbin|gdb /bin/true

Output:

Reading symbols from /bin/true...(no debugging symbols found)...done.
(gdb) Working directory /home/timtw.
(gdb) Hangup detected on fd 0
error detected on stdin

So keeping the pipe open seems to be the key (even though it complained
at the end). This probably won't be a solution to your final goal but
hopefully a step in the right direction.


On Wed, 2011-01-19 at 08:55 -0500, Tim Watts wrote:
> I wonder if gdb is purging stdin during init thus discarding what was
> piped in. Then when it's ready to read commands from stdin finds it's
> been closed.
> 
> To test this I tried this command:
> 
> $ tee junk.txt | gdb /bin/true
> 
> Sure enough, it brought me to the gdb prompt and when I typed 'pwd' and
> 'quit' it required a ^C to get back to the shell. 'cat junk.txt' showed
> the commands I typed.
> 
> This isn't a conclusive test. You'd have to pipe something in initially
> too while leaving the pipe open and observe that the initial output is
> discarded. But it suggests to me that my hypothesis is plausible.
> 
> 
> On Tue, 2011-01-18 at 22:53 -0500, Brian Pitts wrote:
> > Hi,
> > 
> > I'm trying to non-interactively use gdb, but I can't get it to work.
> > Below is an example of what I'm trying and failing to accomplish. I
> > expected the first two commands to print the same thing that the third
> > command does. Instead, they print nothing. Can anyone explain why and/or
> > show me a workaround that doesn't involve a temporary file?
> > 
> > $ echo pwd | gdb -batch -x /dev/stdin /bin/true
> > 
> > $ gdb -batch -x <(/bin/echo pwd) /bin/true
> > 
> > $ echo pwd > gdb_script && gdb -batch -x gdb_script /bin/true
> > Working directory /home/brian.
> > 
> > Without batch mode, gdb reports for command #1
> > 
> > /dev/stdin: No such file or directory.
> > (gdb) Hangup detected on fd 0
> > error detected on stdin
> > 
> > and for command #2
> > 
> > /proc/self/fd/63: No such file or directory.
> > 
> 
> 
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo




More information about the Ale mailing list