Python | Jupyter> Post-Mortem-Debugging | pdb.post_mortem ()

Verwandte: [Python] Super Nützliches Debuggen

Post-Mortem-Debugging mit Jupyter

@ Einführung in Python für die Berechnung von Wissenschaft und Technologie - Entwicklungsgrundlagen, wichtige Bibliotheken, Beschleunigung - von Kenji Nakahisa p80

Wenn Sie IPython (oder Jupyter Notebook) verwenden, ist "Post-Mortem-Debugging" möglich. Beim "Post-Mortem-Debugging" wird das Debugging ausgeführt, nachdem ein Fehler aufgetreten ist.

In [26]: run myscript.py
...
NameError: name 'z' is not defined
In [27]: debug
Starten Sie das Debuggen mit

Es scheint, dass Sie im Fluss des Ausführens des Programms und des Debuggens arbeiten können, nachdem Sie den Fehler bemerkt haben.

Post-Mortem-Debugging von Python

https://docs.python.jp/3/library/pdb.html

Es unterstützt auch das Post-Mortem-Debugging und kann programmgesteuert aufgerufen werden.

Bedeutet dies, dass Post-Mortem-Debugging mit Python selbst möglich ist?

pdb.post_mortem()

https://docs.python.jp/3/library/pdb.html

pdb.post_mortem(traceback=None) Gibt das Post-Mortem-Debugging des angegebenen Traceback-Objekts ein.

Ich habe folgendes gefunden: https://stackoverflow.com/questions/242485/starting-python-debugger-automatically-on-error

Ich habe es versucht.

Betriebsumgebung


CentOS 6.8 (64bit)
httpd.x86_64 0:2.2.15-54.el6.centos
Python 2.6.6

postdebug_170907.py


import pdb, traceback, sys

def addxy(x, y):
	return z

try:
	x, y = 3.141, 2.718
	z = addxy(x, y)
except:
	type, value, tb = sys.exc_info()
	traceback.print_exc()
	pdb.post_mortem(tb)
$ python postdebug_170907.py 
Traceback (most recent call last):
  File "postdebug_170907.py", line 8, in <module>
    z = addxy(x, y)
  File "postdebug_170907.py", line 4, in addxy
    return z
NameError: global name 'z' is not defined
> /home/wrf/WORK/PYTHON/postdebug_170907.py(4)addxy()
-> return z
(Pdb) p x
3.141

Es scheint, dass pdb startet, wenn ein Fehler auftritt und Sie px usw. debuggen können.

Es wurde nicht richtig mit -m pdb verwendet.

Recommended Posts

Python | Jupyter> Post-Mortem-Debugging | pdb.post_mortem ()
Python DS-Debugging
Tipps zum Python-Debuggen
[Python] Super nützliches Debugging
3 Jupyter Notebook (Python) Tricks
[Python] Effizienteres Debuggen!
Versuchen Sie, Python mit Try Jupyter auszuführen
Vollständiges Verständnis des Python-Debuggens
jupyter notebook in python3.8 venv umgebung
Snippet-Einstellungen für Python Jupyter Notebook
Python-Memo Anaconda x Jupyter-Notizbuch
Generieren Sie das Jupyter-Notizbuch ".ipynb" in Python
Einfach zu bedienendes Jupyter-Notebook (Python3.5)