Fehlerbehebung beim Ausführen von Python-Anwendungen mit On-the-Fly-Stack-Trace
Gelegentliche Anwendungsabstürze können bei der Fehlersuche nach der Grundursache frustrierend sein. Python bietet einen Mechanismus zum Generieren eines Echtzeit-Stack-Trace, der es Ihnen ermöglicht, den aktuell ausgeführten Code zu überprüfen und die problematische Stelle zu identifizieren.
Lösung mit Signalverarbeitung
Zu Um einen Stack-Trace im laufenden Betrieb zu erhalten, sollten Sie den folgenden Code verwenden:
<code class="python">import code, traceback, signal def debug(sig, frame): d={'_frame':frame} # Allow access to frame object. d.update(frame.f_globals) # Unless shadowed by global d.update(frame.f_locals) i = code.InteractiveConsole(d) message = "Signal received : entering python shell.\nTraceback:\n" message += ''.join(traceback.format_stack(frame)) i.interact(message) def listen(): signal.signal(signal.SIGUSR1, debug) # Register handler listen()</code>
Verwendung:
Dadurch wird ein Python ausgelöst Konsole mit dem aktuellen Stack-Trace und ermöglichen Ihnen das Erkunden von Variablen. Drücken Sie Strg-D, um die Ausführung fortzusetzen.
Zusätzliche Option
Zum Debuggen von Hintergrundprozessen sollten Sie die Verwendung einer Pipe-basierten Lösung in Betracht ziehen, die im Rezept des Python-Kochbuchs bereitgestellt wird.
Das obige ist der detaillierte Inhalt vonWie debugge ich laufende Python-Anwendungen mit On-the-Fly-Stack-Traces?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!