2016-05-14 13 views

Antwort

0

Wenn das Inferior gestoppt ist und Sie den nächsten Funktionsaufruf ausführen möchten, können Sie einfach step aufrufen, bis Sie es erreichen.

Wenn Sie eine Möglichkeit haben zu sagen "Bitte continue, aber zu stoppen, wenn die nächste Funktion aufgerufen wird" - Nun, es gibt keine eingebaute Möglichkeit, das in gdb zu tun. Wenn es ein echtes Bedürfnis ist, könnten Sie versuchen, es auf verschiedene Arten zu implementieren.

Eine Möglichkeit wäre, Python zu verwenden, um das Stepping zu automatisieren. Die Idee ist, rufen Sie step bis das neueste Frame ändert.

Eine andere Möglichkeit wäre, einen Watchpoint auf den Rahmenzeiger zu setzen. Dies funktioniert jedoch nur, wenn Ihr Code Rahmenzeiger hat.

+0

können Sie näher auf "Eine andere Möglichkeit wäre, einen Watchpoint auf den Frame-Zeiger zu setzen. Dies funktioniert nur, wenn Ihr Code Frame-Zeiger hat, obwohl". Wie kann ich in meinem C-Programm Zugriff auf den Rahmenzeiger haben? –

+0

Sie müssen die Architektur kennen. Ihr C-Programm würde den Rahmenzeiger nicht sehen, Sie würden es in gdb tun, wie 'watch $ rbp'. –

Verwandte Themen