111

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

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

Mx gdb を使用して、emacs 内で gdb を使用してコードをデバッグしようとしました。次のコマンドでプログラムをロードしようとしました。

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

しかし、gdb はそれを好まない。

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

4

5 に答える 5

145

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

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

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

于 2009-01-18T17:53:37.207 に答える
33

それにはいくつかの方法があります。

$ 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

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

于 2011-09-19T15:39:03.840 に答える
6

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

gdb gdbarg1 gdbarg2 --args yourprog arg1 arg2 -x arg3
于 2009-01-20T03:05:07.263 に答える
0

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

$ gdb myprogram xxx

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

于 2009-02-14T00:57:41.210 に答える