问题标签 [ipdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ipdb:根据需要通过附加代码进行跟踪| Python
我用import ipdb;ipdb.set_trace()
有时,在调试时,set_trace
我想验证框架/源之外的一些方法(用我的参数调用它,看看它在内部是如何工作的)。代码中还没有使用方法,所以跳转是不可能的。
某事喜欢:
# 这里:想在 do_b 之前检查 do_c,但不仅仅是从 do_c 获取结果(这很容易),而是跟踪整个 do_c 并保持在当前帧中的位置。
有debug
命令,但不能使用函数,我希望交互式 shell。
解决方法很耗时:停止调试器,修改代码(在示例中添加 do_c())并重新启动调试器)
python - 是否可以删除使用 ipdb.set_trace() 设置的断点?
我ipdb.set_trace()
在 Python 代码中的某个地方使用过。是否可以使用 IPDB 命令忽略此断点?
clear
告诉我它清除了所有断点,但是当 IPDB 偶然发现带有ipdb.set_trace()
.
disable 1
告诉我:No breakpoint numbered 1
ignore 1
说:Breakpoint index '1' is not valid
澄清一下:当然,我可以简单地从我的源代码中删除断点。但这需要退出调试器并重新启动它。通常需要做很多工作才能到达某个地方,重新启动调试器会使生活变得更加困难。此外,如果有一个巨大的循环并且您想要检查循环中的对象,最简单的方法是在循环中直接在对象之后放置一个断点。然后我怎么能跳过循环(以及所有成千上万的调用set_trace()
)并在循环之后使用代码单步执行next
?
python - ipdb 显示颜色代码而不是颜色
用于import ipdb; ipdb.set_trace()
插入断点。第一次击中断点时颜色很好,但第二次击中 BP(按c
)时显示颜色代码而不是真彩色,依此类推。
它在 Windows 7 中,python 2.7 和 2.6 有同样的问题。我认为一种解决方法是使用无配色方案(如何获得无配色方案?)以及如何使用可用的配色方案解决此问题?谢谢!
python - 在 Tornado 的 ioloop 异常时启动 pdb
在独立的 Python 程序中执行此操作通常很有用:
(即如果发生未捕获的异常,程序将进入pdb
事后分析模式)
但这不适用于 Tornado ioloop bc 似乎 ioloop 捕获未捕获的异常并打印或记录它们。如果我安装上面的钩子,程序只有在按下 Ctrl-C 时才会进入事后模式,这有点晚了。:-)
有没有办法在没有猴子修补龙卷风的情况下实现这一目标?
python - 获取对当前异常的引用
我找不到任何ipdb help
显示当前异常的命令。
做import sys; print sys.exc_info()
是不行的。
目前我做:
然后我可以一起exc
分析它。
如何轻松获得对当前有效异常的引用?
python - 使 ipdb 提示着色
如何使ipdb
提示着色?
在打印之间导航很困难:
python - 在 python ipdb 中禁用 vim 绑定
使用 vim、zsh、git 插件安装此dotfiles 存储库后,我的 ipdb 具有 vim 键绑定而不是普通绑定。
带箭头的导航非常糟糕,现在它有时会进入 VIM(打字/正常)等模式。
有人建议我检查 ~/.inputrc,它为命令行工具设置了这些绑定。我在那里只找到了一行:
我尝试删除它并重新启动终端,但它没有帮助。
我使用 iTerm2 和 MacVim。
我知道这个 dotfile repo 是一个单独的,有自己的配置,所以它可能与普通的 vim 配置有点不同,但是我仍然认为 vim 在这里应用它的魔力与在其他地方一样,所以也许有人可以帮助我那。
python - 如何在 pdb (ipdb) 中找到断点号?
试图找到如何执行 ipdb(或 pdb)命令,例如disable
.
调用h
命令disable
说
disable bpnumber [bpnumber ...] 禁用以空格分隔的 bp 编号列表形式给出的断点。
那么我如何获得这些 bp 数字呢?正在查看命令列表,但无法显示 bp 编号
[编辑]
和命令不做任何事情,尽管在我的模块中我显然设置了 1 个这样break
的b
断点- 对于. 而且没有定义。info breakpoints
import pdb; pdb.set_trace( )
ipdb
info
help
in的输出pdb
:
记录的命令(输入帮助):========================================= EOF bt cont enable jump pp run unt ac continue exit lqs until alias cl dh
list quit step up args clear debug help n
r tbreak wb commands disable ignore next restart u whatis break condition down jp
return unalias where其他帮助主题:=========================== exec pdb
未记录的命令:======================= retval rv
对于ipdb
:
记录的命令(输入帮助):========================================= EOF bt cont enable jump pdef psource run unt ac
continue exit l pdoc qs until alias cl
dh list pfile quit step up args clear debug help n pinfo r tbreak wb
commands disable ignore next pinfo2 restart u whatis break condition down jp pp return unalias where其他帮助主题:=========================== exec pdb
未记录的命令:======================= retval rv
我已将我的模块保存为 pb3.py 并像这样在命令行中执行它
python -m pb3 执行确实在断点处停止,但在 di pdb (ipdb) 控制台中,指示的命令不显示任何内容 - 或显示 NameError
如果需要更多信息,我会提供。
python - 将 ipdb 与 emacs 的 gud 一起使用,而无需在代码中设置显式断点
我正在使用 python.el 如果我从菜单中选择“调试器”,然后输入“python -m pdb myfile.py”,gud 启动,并且在拆分框架中我看到(Pdb)提示符和我的 python另一行的代码在第一行带有插入符号,表示它已准备就绪。例如,'n' 步到下一行,插入符号相应地移动。
相反,如果我输入“python -m ipdb myfile.py”,则帧拆分,其中一个拆分标记为 gud,但没有明显的 ipdb 控制台。换句话说,这种启动ipdb的方式似乎行不通。如果我使用 ipdb.set_trace() 手动将断点插入到我的 python 代码中,则 Ipdb 工作正常,但它不使用 gud 接口。这是故意的,以便 ipdb 的堆栈跟踪能够很好地工作吗?
如果是这样,那很好,但是有没有办法从 emacs 启动 ipdb 而无需手动添加 set_trace() 命令?