Débogage d'applications Python en cours d'exécution avec trace de pile à la volée
Rencontrer des blocages occasionnels d'applications peut être frustrant lors du dépannage de la cause première. Python fournit un mécanisme pour générer une trace de pile en temps réel, vous permettant d'inspecter le code en cours d'exécution et d'identifier l'endroit problématique.
Solution utilisant la gestion du signal
Pour pour obtenir une trace de pile à la volée, pensez à utiliser le code suivant :
<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>
Utilisation :
Cela déclenchera un Python console avec la trace actuelle de la pile et vous permet d'explorer les variables. Appuyez sur Ctrl-D pour reprendre l'exécution.
Option supplémentaire
Pour déboguer les processus en arrière-plan, envisagez d'utiliser une solution basée sur des tuyaux fournie dans la recette du Python Cookbook.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!