Alex Rivera | Logout

How to load program reading stdin and taking parameters in gdb?

Asked 2009-01-18T17:36:20.157
128

Question cribbed from here:

I have a program that takes input from stdin and also takes some parameters from command line. It looks like this:

cat input.txt > myprogram -path "/home/user/work"

I try to debug the code with gdb inside emacs, by M-x gdb, I try to load the program with the command:

gdb cat input.txt > myprogram -path "/home/user/work"

However, gdb does not like it.

Unfortunately I don't understand the solution and am not sure what to do beyond compiling with the -g option and running the command M-x gdb.

Edit
Report

1 Answer

37

There are several ways to do it:

$ gdb myprogram
(gdb) r -path /home/user/work < input.txt

or

$ gdb myprogram
(gdb) set args -path /home/user/work < input.txt
(gdb) r

or

$ gdb -ex 'set args -path /home/user/work < input.txt' myprogram
(gdb) r

where the gdb run command (r) uses by default the arguments as set previously with set args.

answered 2011-09-19T15:39:03.840

Your Answer