I’m experimenting with debugging my python from the raw pdb program rather than running pdb though emacs (which tracks the current line with a marker in the text display of the code). It’s slightly annoying that the list command l in pdb only displays a few lines of code, I would rather have it fill my terminal with all the code of the current function up to the current line.
I know I can do this manually by looking at the line numbers are typing l 50,100 (where 100 is the current line) but this is time consuming and I’d like to set this up to work automatically.
I wonder if there is a way to define a pdb command to do this? I’m guessing it would need to (1) access the number of the current line, N; then (2) execute “l N-50, N”. I’ve searched around a lot but can’t find anyone who has done this before. Perhaps there is a way to access the pdb module’s own internals to get the line number?
(Or a roundabout way would be to write something that calls list once, parses the output to extract the current line, then executes a new list command, I wonder if anyone has done this already? Is this how IDEs manage to get the current line information from pdb or are they using its internals I wonder?)
You could probably extend the PDB class, but the extension interface isn’t documented very well.
I’d instead recommend using pdb++ and its sticky feature which pretty much does what you want, if I understood your use case correctly.