回答:
--argsパラメータを使用してgdbを実行できます。
gdb --args executablename arg1 arg2 arg3
自動的に実行したい場合は、いくつかのコマンドをファイルに入れ(例: 'run')、引数として-x / tmp / cmdsと指定します。オプションで、-batchモードで実行できます。
gdb -batch -x /tmp/cmds --args executablename arg1 arg2 arg3
man gdb
はが含まれていません--args
。そのため、見つかりませんでした。gdb --help
します。
info gdb
次回は必ず使用してください:-)。
info
。GoogleまたはStack OverflowがXDの動作を停止した場合
index-search
)を発見した後、情報に夢中になりました。試してください:info gdb
次に「i」、次に「--args」。それはあなたにそれを正しくもたらすでしょう。
これを行うもう1つの方法は、個人的に(--args
パラメーターを覚える必要なしに)少し便利で直感的であると思いますが、通常どおりにコンパイルし、r arg1 arg2 arg3
から直接使用するgdb
ことです。
$ gcc -g *.c *.h
$ gdb ./a.out
(gdb) r arg1 arg2 arg3
次のコンテキストでファイルを作成できます。
run arg1 arg2 arg3 etc
program input
そしてgdbを次のように呼び出します
gdb prog < file
gdbに--init-command <somefile>
はsomefileに実行するgdbコマンドのリストがあり、これを使用//GDB
してコードにコメントを付け、 `
echo "file ./a.out" > run
grep -nrIH "//GDB"|
sed "s/\(^[^:]\+:[^:]\+\):.*$/\1/g" |
awk '{print "b" " " $1}'|
grep -v $(echo $0|sed "s/.*\///g") >> run
gdb --init-command ./run -ex=r
スクリプトとして、デバッグシンボルをロードするコマンドを配置し、次に、各//GDB
コメントにブレークポイントを配置するブレークコマンドのリストを生成し、実行を開始します。
Hugo Idelerの回答に加えて。--
またはのように自分自身のプレフィックスを持つ引数を使用する場合-
、gdbの引数と競合するかどうか確信が持てませんでした。
gdbはargs
プログラムの引数としてすべての後のオプションをとるようです。
最初は確認したかったのですが、私はあなたの引数を引用符で囲んでgdbを実行しましたが、起動時に削除されました。
これも機能しますが、オプションです:
gdb --args executablename "--arg1" "--arg2" "--arg3"
これは動作しません:
gdb --args executablename "--arg1" "--arg2" "--arg3" -tui
その場合、-tui
プログラムのパラメーターとして使用されますが、gdbのパラメーターとしては使用されません。