Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
Closed
Description
The documentation forpdb
says:
.. pdbcommand:: ! statement Execute the (one-line) *statement* in the context of the current stack frame. The exclamation point can be omitted unless the first word of the statement resembles a debugger command. To set a global variable, you can prefix the assignment command with a :keyword:`global` statement on the same line, e.g.:: (Pdb) global list_options; list_options = ['-l'] (Pdb)
Which suggests that the prefix is used with a space between the!
prefix and the statement to be executed. However,the implementation consumesonly the prefix, which means that the natural reading of the docs leads to anIndentationError
:
$ python3 test.py --Return--> /home/snoopjedi/repos/cpython/test.py(3)<module>()->None-> breakpoint()(Pdb) l 1 lst = [1, 2, 3] 2 it = iter(lst) 3 -> breakpoint()[EOF](Pdb) ! next(it)*** IndentationError: unexpected indent
while omitting the space gives the intended result:
(Pdb) !next(it)1
It would also be helpful to have an example in the documentation that actually uses the prefix for first-word disambiguation as described in the text.