Passing data to a shell'ed command

Eli Zaretskii eliz@is.elta.co.il
Tue Jul 3 23:56:00 GMT 2001


On Tue, 3 Jul 2001, Shawn McCarney wrote:

> I need to create a user-defined command that reads some memory and then
> passes it a formatting program.  I am assuming the formatting program would
> be run via the 'shell' command'.  Is there any way to do this?
> 
> Below is a list of the things that I have thought of.  None of them seem to
> be possible:
> 
> * Writing the command output to a file (this is my preferred approach)
> * Passing output as stdin to a child process
> * Setting an environment variable which contains the output
> * Passing output as command line parameters to a child process

I'd suggest

 * add a special function to the debuggee which will accept the
   command line for the formatting program, and then run that
   program.  Then use the GDB `call' command to invoke that function
   from GDB.

> Another possible solution would be to call C runtime I/O functions as part
> an expression in a 'set' command.  However, these functions would be
> running on the target, not the gdb host machine right?

Ah, you are debugging a remote target?  Than my suggestion won't work
for you.

Sounds like a good reason for extending `shell', or maybe a new
command.



More information about the Gdb mailing list