So betreten Sie eine Funktion, jedoch nicht ihre Parameter mit GDB

Dec 14 2020

Wie Sie vielleicht wissen, können Sie in GDB mit step(s)Befehl eine Funktion aufrufen . Aber suntersuchen und Schritt in die Parameter der Funktion auf den ersten. Zum Beispiel für die folgende Funktion:

foo(bar(1));

eintreten foo, eintreten barund dann eintreten foo. Das Betreten der Parameter wird ärgerlich, sobald die Anzahl der Parameter immer größer wird. Ist es möglich, foomit GDB direkt in die Ausführung einzusteigen und die Parameter zu überspringen?

Ich weiß, dass ich einen Haltepunkt setzen kann foo:) Ich suche nach anderen Lösungen.

Antworten

KamilCuk Dec 14 2020 at 19:30

Bei komplexen Anrufen:

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

Ich "gehe zu" mit stepdieser Zeile und dann einen einzelnen Schritt sihinein. Es werden einzelne Schritte in die erste aufgerufene Funktion ausgeführt. Dann können finishSie raus und siwieder in die nächste Funktion.