ist es möglich, dass gdb bricht, wenn die nächste Funktion auf den Stapel geschoben wird. Wenn ja, wie? Es kann Situationen geben, in denen Sie nicht wissen, was das nächste Fn ist, das von der aktuellen Fn aufgerufen wird, zum Beispiel die nächste Funktion mit Callback aufrufen.break gdb wenn nächste Fn auf den Stapel geschoben wird
0
A
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.
Verwandte Themen
- 1. Welche Werte werden während eines Funktionsaufrufs auf den Stapel geschoben?
- 2. Break Execution Loop innerhalb Gdb
- 3. In iOS6, Probleme zwingen Viewcontroller auf bestimmte interfaceOrientation wenn auf Stapel geschoben
- 4. Unsichtbare Zurück-Schaltfläche, wenn der Ansichtscontroller auf den Navigationscontroller geschoben wird
- 5. Das C++ implizit, und genau, wie es auf dem Stapel geschoben wird
- 6. Wenn Wertaufruf verwendet wird, werden die tatsächlichen Parameterwerte in den Stapel geschoben. Was ist mit Anruf per Referenz?
- 7. Welche Register werden beim Auftreten eines Interrupts auf den Stapel geschoben?
- 8. Kann ich in der CDECL-Aufrufkonvention die Argumente, die ich auf den Stapel geschoben habe, wiederverwenden?
- 9. Geschichte Stapel gelöscht, wenn auf den letzten apps Taste
- 10. Wie wird eine Operation auf den Excel-Stapel rückgängig gemacht?
- 11. Keine Ausgabe, wenn Objekt zum Vektor geschoben wird
- 12. gdb: break in shared library von python geladen
- 13. Keine Quelldatei mit dem Namen main.c. gdb break point setting
- 14. Lebensdauer in Iterator: fn nächste (& 'ein mut selbst)
- 15. Größe von EBP Register auf dem Stapel?
- 16. Break Line auf TextArea
- 17. React-Status ändert sich, wenn verschachteltes Objekt geschoben wird
- 18. Was geht auf den Stapel oder Heap?
- 19. Versuchen, den Stapel zu zerschlagen
- 20. GDB zeigt keine hexadezimalen Werte für Stapel an
- 21. GDB: brechen, wenn die Variable den gleichen Wert
- 22. Warum schreibt Babel den importierten Funktionsaufruf auf (0, fn) (...) um?
- 23. Durch den Stapel gehen
- 24. So verschieben Sie den Fokus auf das nächste Feld, wenn Enter gedrückt wird
- 25. Break flexbox, wenn ein neuer Container eingeführt wird
- 26. Denken Sie daran, nächste und vorherige Seiten einen Stapel mit
- 27. Bootstrap Right Column wird unter Inhalt geschoben
- 28. Aktualisieren eines NSMutableArray in einem neuen ViewController, der auf den Stack geschoben wird
- 29. Liste Git Commits nicht auf den Ursprung geschoben noch
- 30. Zuordnung von String auf dem Stapel
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? –
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'. –