Wie stoppe ich eine gdb-Ausführung ohne Haltepunkt?GDB Wie kann die Ausführung ohne Haltepunkt gestoppt werden?
Antwort
Verwenden Sie einfach eine regelmäßige Unterbrechung Ctrl - c wird gut funktionieren. GDB leitet die SIGINT
nur an den Debugging-Prozess weiter, der dann abbricht. GDB wird den Nicht-Standard-Exit abfangen und den Prozess dort unterbrechen, sodass Sie immer noch alle Threads, ihre Stacks und die aktuellen Werte der Variablen überprüfen können. Dies funktioniert gut, obwohl Sie besser Breakpoints verwenden würden. Das einzige Mal, wenn ich das mache, ist, wenn ich denke, dass ich in eine Art Endlosschleife geraten bin.
Ich versuchte^C aber es hat nicht funktioniert Ich bin nicht in der Lage, etwas auf der Eingabeaufforderung einzugeben.Auch das Programm ist Multi-Threaded UI, könnte das das Problem sein? – anand
Ctrl-C woks wie ich will, aber ich reproduzieren dies nicht auf GDB 7.7.1: Der Prozess schien nicht zu bekommen die Ctrl-C und sterben. Es wurde nur von GDB gestoppt, nicht getötet. Durch erneutes Drücken von 'c' oder' detach' wird es von dort fortgesetzt, wo es aufgehört hat. –
Geben Sie einfach BREAK ohne Argumente ein.
Break, wenn ohne Argumente aufgerufen, Pause einen Haltepunkt an den nächsten Befehlssätze
Im Zusammenhang mit gdb, Laufen, Stoppen, Treten. Dies war genau die Art von "Stopp", die ich brauchte, die App zu töten wurde in der Dokumentation von gdb erklärt. +1 – hobb
Start Schal in dem ausgewählten Stapelrahmen ausgeführt werden, finden Sie den Prozess-ID ps und es SIGSTOP oder SIGINT senden, indem Sie der Befehl kill (zB kill -INT pid).
GUI-Anwendungen reagieren nicht auf^C und^Brechen Sie den Weg, den Konsolenanwendungen machen. Seit diesen Tagen der meisten nicht-triviale Projekte sind in der Regel GUI-Anwendungen oder Bibliotheken in erster Linie in GUI-Anwendungen verwendet werden, haben Sie zwei Möglichkeiten:
Senden SIGSTOP die Anwendung von einem separaten Terminal. Dies ist umständlich.
Wenn Sie in der GDB-Eingabeaufforderung^C oder^Break drücken, wird GDB beendet, aber die Anwendung wird weiter ausgeführt. Sie können GDB dann erneut ausführen, um es mithilfe des Befehlszeilenschalters
-p
anzuhängen. Das verliert Debugger-Status.
In beiden Fällen finden Sie vielleicht diese hilfreich: tasklist | grep
ProcessName
| sed -e 's/
ProcessName
*\([0-9]*\).*/gdb
ModuleName
-pid=\1/' > rungdb.sh
Sie diese Skripte für die Verwendung in der Schale ändern können, Makefiles oder ein Signal anstelle des Anbringens GDB senden .
info threads
wird Ihnen helfen herauszufinden, welchen Thread Sie betrachten möchten. Dann verwenden Sie thread
ThreadNumber
, um darauf zu wechseln.
- 1. Kann in GDB ein Haltepunkt angegeben werden?
- 2. Wie kann die Ausführung von Google Apps Script gestoppt werden?
- 3. gdb Haltepunkt auf pthread_create
- 4. Wie zu einem Haltepunkt in Gdb springen?
- 5. GDB: Haltepunkt in minderwertigen Prozess
- 6. Solaris GDB: Wie pausiere ich die Ausführung?
- 7. Thread 1: An Haltepunkt 1 gestoppt
- 8. Gdb stoppt nicht an Haltepunkt
- 9. Kann ein Prozess über eine Systemtap-Sonde gestoppt werden, sodass gdb angehängt werden kann?
- 10. Haltepunkt auf jeder Zeile in GDB setzen
- 11. Setzen von Haltepunkt in GDB, wo die Funktion gibt
- 12. Wie kann die Ausführung nach einer bestimmten Zeit in Java gestoppt werden?
- 13. Wie kann die Ausführung nach dem Ändern von window.location gestoppt werden?
- 14. Wie kann die Weiterleitung an die benutzerdefinierte Domäne gestoppt werden?
- 15. Wie gdb Eingabeaufforderung zurückzukehren, nachdem haben fortzusetzen und GDB nicht den Haltepunkt
- 16. GDB bedingter Haltepunkt auf beliebige Arten
- 17. Wie kann die Instanz der Compute Engine gestoppt werden, ohne die Instanz zu beenden?
- 18. Wie kann diese rekursive Funktion gestoppt werden?
- 19. setInterval kann nicht gestoppt werden
- 20. GDB kann einen Haltepunkt für freigegebene Bibliothek nicht festlegen
- 21. cts Ausführung gestoppt halbem Weg
- 22. Wie kann die Pipeline bei fehlerhaften Blöcken gestoppt werden?
- 23. Wie kann die Animation am Ende des Zyklus gestoppt werden?
- 24. Wie kann die automatische Auflösung von Promise-Objekten gestoppt werden?
- 25. Pause Matlab ohne Haltepunkt
- 26. SSRS: Die Ausführung kann nicht gefunden werden
- 27. Junit assert.fail() -Methode wird gestoppt, die Ausführung, muss die Ausführung fortsetzen und geben Sie am Ende
- 28. Kann ein Haltepunkt für EXC_BAD_ACCESS festgelegt werden?
- 29. Haltepunkt, damit die iOS-App beim Senden eines Zombie-Objekts sofort gestoppt wird?
- 30. Timer kann nicht gestoppt werden in C#
Wie wurde der Prozess gestartet? Wie hast du es angehängt? Standardmäßig stoppt das Anhängen mit 'gdb --pid' den Prozess bereits. Meinst du, nachdem du 'c' getroffen hast? –