1. ホーム
  2. debugging

[解決済み] GDBで関数の戻り値を調べるには?

2022-10-13 13:25:04

質問

gdbで関数の戻り値を検査することは可能ですか? ではありません。 が変数に割り当てられていると仮定して、gdbで関数の戻り値を調べることはできますか?

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

もっと良い方法があると想像していますが を終了する コマンドは現在のスタックフレームがポップオフされるまで実行され、戻り値を表示します。

int fun() {
    return 42;
}

int main( int argc, char *v[] ) {
    fun();
    return 0;
}

このようにデバッグすることができます --。

(gdb) r
Starting program: /usr/home/hark/a.out 

Breakpoint 1, fun () at test.c:2
2               return 42;
(gdb) finish
Run till exit from #0  fun () at test.c:2
main () at test.c:7
7               return 0;
Value returned is $1 = 42
(gdb) 

finish コマンドは次のように省略することができます。 fin . を使わないでください。 f の省略形である frame コマンドの略です。