By default, during debugging in IPython, ipdb shows one line above and one line below the current position in code.
Is there an easy way to make the area shown a bit bigger? I'd think it would be configurable, but haven't been able to find it.
Then there is the debugger command commands . It allows you to enter multiple lines of commands and then end the whole sequence with the end key word.
You can use j <line number> (jump) to go to another line.
You can type l
in ipdb to show a few more lines of the current context
and you can keep hitting l
and it continue revealing more lines from the file
If you want to show more lines of context around the current line you can type l
to get the current line. And then type l curr_line - 10, curr_line + 10
. Say I was on line 50 and I wanted to see the surrounding 20 lines. I would type: l 40,60
to see more.
As noted by @jrieke in a comment, you can also hit ll
to get a bigger chunk of context. One nice thing about ll
is it will print all the way back from the start of the current method (whereas consecutive l
s reveal further lines below your breakpoint).
You can get more context by doing:
ipdb.set_trace(context=21)
To permanently set context size, find the installation directory by doing
python -c 'import ipdb; print(ipdb)'
which will show you a __init__.py
file. Open that file and find the line (which may also be found in IPDB's __main__.py
:
def set_trace(frame=None, context=3):
change the 3
to however many context lines you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With