これに関するドキュメントを探しましたが、何も見つかりませんでした。 MinGWをインストールしましたが、うまく機能します。デバッガの使用方法がわかりません。
いくつかの簡単なコードを考えて、「mycode.cpp」というファイルで次のように言います。
int main()
{
int temp = 0;
for (int i = 0; i < 5; ++i)
temp += i;
return 0;
}
...これをどのようにデバッグしますか? WindowsでMinGWとGDBを使用してコードをデバッグするために使用するコマンドは何ですか? Visual Studioのようにコマンドラインからコードをステップ実行できますか?もしそうなら、私はそれを行うためにどのコマンドを使用しますか?
GDBを使用するためのチュートリアルはありますか?私は何も見つけられませんでしたが、誰かが私を素晴らしいものに導くことができるなら。複雑なコードをデバッグするために大量のstd::cout
ステートメントを書くのはうんざりです。
最初のステップは、-g
を使用してプログラムをコンパイルし、実行可能ファイル内にデバッグ情報を含めることです。
g++ -g -o myprog.exe mycode.cpp
その後、プログラムをgdb
にロードできます。
gdb myprog.exe
開始するためのいくつかのコマンド:
break main
は、main
が呼び出されたときにデバッガーを中断させます。 break FILENAME:LINENO
を使用してコード行を改行することもできます。たとえば、break mycode.cpp:4
は、プログラムがmycode.cpp
の4行目に到達するたびに実行を中断します。start
はプログラムを開始します。あなたの場合、プログラムはすぐに終了するため、プログラムを開始する前にブレークポイントを設定する必要があります。ブレークポイントで:
print VARNAME
。これが、ローカル、静的、またはグローバルに関係なく、変数の値を出力する方法です。たとえば、for
ループでは、print temp
と入力して、temp
変数の値を出力できます。step
これは「ステップイン」と同等です。next
またはadv +1
次の行に進みます(「ステップオーバー」など)。 adv mycode.cpp:8
などを使用して、特定のファイルの特定の行に進むこともできます。bt
バックトレースを出力します。これは基本的にスタックトレースです。continue
ビジュアルデバッガーの「継続」操作とまったく同じです。次のブレークポイントまたはプログラムが終了するまで、プログラムの実行が継続されます。読むのに最適なのは GDBユーザーマニュアル です。
この質問にはWindows用のgdb GUIがいくつかあります GDBフロントエンドDDDのWindowsバージョン
DDDは移植されていませんが