標準入力を読み取り、gdbでパラメータを取得するプログラムを読み込む方法

StackOverflow https://stackoverflow.com/questions/455544

質問

  

から入力を受け取るプログラムがあります   stdinそしてまたいくつかのパラメータを取ります   コマンドラインから。次のようになります。

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

gdbでコードをデバッグしようとしています   emacsの内部で、M-x gdbにより、   次のコマンドでプログラムをロードします。

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

ただし、gdbはそれを好みません。

こちらから質問が寄せられました。 残念ながら、私は解決策を理解しておらず、-gオプションでコンパイルしてコマンドM-x gdbを実行する以外に何をすべきかわかりません。

役に立ちましたか?

解決

シェルから実行する場合は、次のようにします:

% gdb myprogram
gdb> run params ... < input.txt

これはemacs内でも機能するようです。

他のヒント

それを行うにはいくつかの方法があります:

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

または

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

または

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

gdb runコマンド(r)は、以前にset argsで設定した引数をデフォルトで使用します。

デバッグセッションを開始する際の完全性のために、--argsオプションもあります。すなわち)

gdb gdbarg1 gdbarg2 --args yourprog arg1 arg2 -x arg3

また、最初からデバッグする必要がない場合は、次を使用して既に実行中のプロセスにアタッチすることもできます。

$ gdb myprogram xxx

xxxはプロセスIDです。その後、gdbに開始引数を伝える必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top