0


0

戻り値に「データブレークポイント」を設定できますか

シナリオは次のとおりです。深い呼び出し階層があり、各呼び出しはHRESULTを返します。 何か悪いことが起こった場合、関数はS_FALSEまたはS_ERRORを返し、呼び出しがエラーを返した場合、呼び出し元はエラーコードを直接返します。 通常、すべての関数はS_OKを返します。 したがって、問題をデバッグするときは、多くの試行を行い、どの呼び出しが!S_OKを返すかを確認し、さらに深く調べて、続行する必要があります…​ エラーを引き起こす究極の場所を見つけるまで。

戻り値に「データブレークポイント」を作成できるか(eax?)だから、戻り値が変更されたとき、または戻り値がある値に等しいとき、プログラムは停止できます…​

1 回答


0


変数に戻り値を割り当て、変数が特定の値(条件付きブレークポイントと呼ばれる)に等しくなるたびに変数にブレークを設定し、S_FALSE / S_ERROR / S_OKなどを返す代わりに変数を返すだけではどうですか?

ex:

public long yourFunc() {
    long ret = S_OK;

    if (someCondition) {
        ret = S_ERROR;
    }
    return ret; // set a conditional breakpoint here, and put in
                // a condition where ret != S_OK
}

編集 +コードを変更したくない/変更できない場合は、次のスレッドをチェックしてください:https://stackoverflow.com/questions/1378594/is-it-possible-to-set-関数ベースの終了時の条件付きブレークポイント[関数が返すものに基づいて、関数の最後に条件付きブレークポイントを設定することは可能ですか?]