0

次のようなコード スニペットがあります。

int test( /* some arguments */)
{
    ret = func(/* some arguments */)
    if (ret < 0) 
    {
       /* do this */
    }

    /* do this */

    return ret;
}

関数funcは、関数内の何らかのエラー条件に対して -1 を返しています。testこの誤った状態は、関数が呼び出される100 回に 1 回発生するため、ブレークポイントを配置しましif (ret < 0)た。ここで、関数内で何が起こっているかをデバッグしたいと思いますfunc()test上記の行の関数でブレークポイントにヒットした場合、どうすればよいですか。

4

2 に答える 2

2

私はブレークポイントを置きます

return -1;

関数自体の中で。あなたがしている方法では、関数のスタック フレームは既に破棄されています。コード ポインターを移動できる場合は、同じ引数で関数を再度実行できますが、関数に副作用がある場合は、同じように反応しない可能性があります。方法はわかりませんが、おそらくジャンプコマンドが必要です。

于 2012-12-27T09:23:01.897 に答える