Pdb "commands" command with no bpnumber should use last available breakpoint
Bug report
Bug description:
According to the documentation:
With no bpnumber argument, commands refers to the last breakpoint set.
I think the intended meaning should be the last available breakpoint. However, when using the commands command without specifying a breakpoint number, if the most recently created breakpoint has been deleted, the current behavior throws an error stating "Breakpoint N already deleted".
main.py:
foo = 1
bar = 2
➜ ./python -m pdb main.py
> /cpython/main.py(2)<module>()
-> foo = 1
(Pdb) b 3
Breakpoint 1 at /cpython/main.py:3
(Pdb) b 2
Breakpoint 2 at /cpython/main.py:2
(Pdb) clear 2
Deleted breakpoint 2 at /cpython/main.py:2
(Pdb) commands # should set command on breakpoint 1
*** cannot set commands: Breakpoint 2 already deleted
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
- gh-142835
@ZeroIntensity stdlib
Good idea! Should it really be the last available breakpoint, or the last enabled breakpoint?
Should it really be the last available breakpoint, or the last enabled breakpoint?
cc @gaogaotiantian
Should it really be the last available breakpoint, or the last enabled breakpoint?
I think it should be the last available breakpoint because it's totally valid to set commands on a disabled breakpoint. However, this is a very rare case already. I believe commands is used mostly either immediately after breakpoint, or explicitly on a numbered breakpoint. This specific difference won't be noticable to the majority of the users.