python3 pdb:如何重复多个命令

问题描述 投票:2回答:2

你如何重复多个命令?

Multiple commands may be entered on a single line, separated by ;;.
[...]
Entering a blank line repeats the last command entered.

我已经尝试过了:

n ;; l
<ENTER>

但只会重复list命令。

坚持使用pdb(没有ipdb&co),你会知道如何轻松地重复多个命令吗?

谢谢 !

python-3.x pdb
2个回答
0
投票

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

例外:如果最后一个命令是list命令,则列出接下来的11行。

就在这之后

输入空行会重复输入的最后一个命令

你提到过

在你的表达

n ;; l

正如我们所看到的,list命令'l'似乎是最后一个直接命中异常的命令

我遇到了同样的问题并找到了某种解决方案 - 我们可以通过按向上箭头键重复最后一个命令n;;l然后输入,就像在终端中一样。希望这可以帮助。


0
投票

如@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

© www.soinside.com 2019 - 2024. All rights reserved.