GDBを使用して関数にステップインするが、パラメーターにはステップインしない方法

Dec 14 2020

ご存知かもしれませんが、step(s)コマンドを使用したGDBでは、関数にステップインできます。ただしs、最初に関数のパラメーターを調べてステップインします。たとえば、次の関数の場合:

foo(bar(1));

足を踏み入れるfooにステップ、barおよび、その後にfoo。パラメータの数が増えるとすぐに、パラメータに足を踏み入れるのは面倒になります。fooGDBを使用して、直接実行にステップインし、パラメーターへのステップインをスキップすることは可能ですか?

私はブレークポイントを設定できることを知っていますfoo:)私は他の解決策を探しています。

回答

KamilCuk Dec 14 2020 at 19:30

いくつかの複雑な呼び出しを処理する場合:

printf("%d %d\n", function(), next_function());

私はstepその行に「行き」、それから一歩踏み込みsiます。呼び出された最初の関数にシングルステップします。次に、あなたができるfinish出るとするsi次の関数に再び。