だから、私が自分のプログラムを実行するとき、私はします
./a.out < SampleData
SampleDataファイルを渡すことができる状態で、プログラムをデバッグするにはどうすればよいですか?
ありがとう
編集:やってみた
gdb ./a.out
run < SampleData
私がそれをするとき、それは私のプログラムを実行し、それが通常出力するものを出力し、そして私に以下を残します:
「[劣った1(プロセス19460)はコード03で終了しました]」
何?
だから、私が自分のプログラムを実行するとき、私はします
./a.out < SampleData
SampleDataファイルを渡すことができる状態で、プログラムをデバッグするにはどうすればよいですか?
ありがとう
編集:やってみた
gdb ./a.out
run < SampleData
私がそれをするとき、それは私のプログラムを実行し、それが通常出力するものを出力し、そして私に以下を残します:
「[劣った1(プロセス19460)はコード03で終了しました]」
何?
gdb 内でリダイレクトを行うこともできます。
gdb a.out
# ...
(gdb) run < SampleData
更新に基づく編集:
このテキスト:
[Inferior 1 (process 19460) exited with code 03]
自分からのメッセージgdbです。Inferior は、 によってデバッグされているプロセスに付けられた名前gdbです。ここでは、1 つだけです (ただし、複数存在する可能性があります)。終了コードは、プログラムが終了したコードです。関数が完了した場合main()、それが返された値です。を呼び出した場合はexit()、渡した値です。これらの値は、多くの場合、プログラムが成功したか失敗したかに関する情報を呼び出し元 (シェルなど) に渡すのに役立ちます。
EXIT_SUCCESSおよびC で確認することをお勧めEXIT_FAILUREします (それぞれ実行の成功/失敗を示します)。多くのプログラムでは、特定のエラーを示すために追加の終了コードを定義しています。
ここの値は であり03、これは通常とは異なる終了コードmain()であるため、最後に return ステートメントがない可能性があります。
gdb --args ./a.out < SampleData
GDB でコマンドを使用runする場合、通常の入力リダイレクトを使用できます。
$ gdb ./a.out
(gdb) run < SampleData