1. ホーム
  2. c++

[解決済み] GDBで関数呼び出しをステップオーバーするにはどうしたらいいですか?

2022-03-03 17:15:08

質問

関数呼び出しのステップオーバーをどのように行うか理解したい。例えば、次のような最も単純なプログラムです。

 #include <iostream>
 #include "test.h"

 using std::cout;
 using std::endl;

 Uint u;

 int main()
 {
     cout << "execution starting..." << endl;
     cout << u.a << endl;
     cout << "execution completed" << endl;
 }

OK、11行目でブレークポイントを設定しました。 break 11 コマンドを使用します。では、これから起動されるすべての命令をステップオーバーして "execution starting..." で停止し operator << を呼び出して印刷します。 endl シンボルを使用します。どうすればいいのでしょうか?どのコマンドを使えばいいのでしょうか?

どのように解決するのですか?

GDBで。 step はステップイン(呼び出された関数の中に入る)、そして next はステップオーバー(次の行に進み、停止する)を意味します。

しかし、あなたの特別なケースでは next は、あなたが望むものではない可能性があり、私は最初に提案します。 step を、"実行開始..." と表示する関数に変換し、次に finish で停止するように、プログラムが戻るまで継続します。 <<endl .