How to put a breakpoint on the current line withtout typing the line number in the Python pdb debugger?

I'm used to GDB, where b does that.

But in pdb, b just list breakpoints.

I can do b 123, but lazy to type 123.

Maybe a magic argument like b .?

I know PyCharm and __import__('pdb').set_trace(), just checking if there is an usable CLI alternative for those quick debugs.

Upvotes: 4

Views: 553

Answers (1)

georgexsh
georgexsh

Reputation: 16624

if you accept adding a new pdb command, it is trivial:

def do_breakcurrent(self, arg):
    cur_lineno = str(self.curframe.f_lineno)
    return self.do_break(cur_lineno)


import pdb
pdb.Pdb.do_breakcurrent = pdb.Pdb.do_bc = do_breakcurrent

use breakcurrent or bc:

(Pdb) bc
Breakpoint 1 at /Users/georgexsh/workspace/so/52110534.py:11

if you want to put those code into .pdbrc to make it available automatically, need little tweak:

import pdb
pdb.Pdb.do_bc = lambda self,arg: self.do_break(str(self.curframe.f_lineno))

Upvotes: 3

Related Questions