Python3 pdb:如何重复多个命令

4
如何重复多个命令?
Multiple commands may be entered on a single line, separated by ;;.
[...]
Entering a blank line repeats the last command entered.

我已经尝试过:

n ;; l
<ENTER>

但是只有列表命令会被重复执行。

如果坚持使用pdb(而不是ipdb等),您是否知道如何轻松地重复多个命令?

谢谢!

2个回答

2

正如@Song所指出的那样,您无法重复所需的行为,即步进而不是显示上下文,原因是n ;; l中的最后一个命令是l

我绕过这个问题的方法是在我的别名中使用大写字母。这是我的.pdbrc文件的内容:

# Enable completion
import pdb
import rlcompleter
pdb.Pdb.complete=rlcompleter.Completer(locals()).complete

# Show context on startup
l

alias S 'Stepping into...' ;; step ;; l
alias N 'Stepping over...' ;; next ;; l
alias C 'Continuing...' ;; continue ;; l
alias R 'Going to return...' ;; return ;; l

前面的字符串"Stepping into..."等告诉您何时执行自定义命令而不是本机pdb命令。
这些命令也适用于ipdb

1

好的,文档https://docs.python.org/3/library/pdb.html说:

异常:如果最后一个命令是列表命令,则下面的11行将被列出。

就在这之后

输入空行会重复上次输入的命令

你提到了

在你的表达式中

n;;l

我们可以看到列表命令'l'似乎是直接触发异常的最后一个给定命令

我也遇到了同样的问题,并找到了一种解决方案 - 我们可以通过按向上箭头键然后按回车键来简单地重复上次的命令n;;l,就像在终端中一样。希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接