Debugging with IPython
Debugging is one of those tasks that we try to avoid by having good unit tests in place. Debugging can take a long time, and most likely, you don't have that time. Therefore, it is important to be systematic and know your tools well. After you have found the issue and implemented a fix, you should have a unit test in place. This way at least you will not have to go through the torture of debugging again.
We will debug some incorrect code that is trying to access an array element out of bounds:
import numpy a = numpy.arange(7) print a[8]
Proceed with the following steps:
Run the faulty script in IPython.
Start the
ipython
shell. Run the faulty script in IPython by issuing the following command:In [1]: %run buggy.py --------------------------------------------------------------------------- IndexError Traceback (most recent call last) .../site-packages/IPython/utils/py3compat.pyc in execfile(fname, *where) 173 else: 174...