-
- Notifications
You must be signed in to change notification settings - Fork 33.1k
Closed
Labels
docsDocumentation in the Doc dirDocumentation in the Doc dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
The documentation for pdb
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 consumes only the prefix, which means that the natural reading of the docs leads to an IndentationError
:
$ 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.
Linked PRs
Metadata
Metadata
Assignees
Labels
docsDocumentation in the Doc dirDocumentation in the Doc dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error