问题标签 [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.

0 投票
3 回答
808 浏览

python - 跨 ipdb 会话的历史记录

以前有人过这个问题,但我找不到一个好的答案。所以,我想再问一次。

我希望我的 ipdb 能够记住跨会话的命令。现在,它可以提取在 Ipython 会话中执行的命令,但不能从旧的 ipdb 会话中提取。如果我能拥有这个功能,那将是一个巨大的节省时间。

有没有人可以解决这个问题?

0 投票
0 回答
141 浏览

python - 显示由 ipdb 中手动调用的函数引发的异常的回溯

我想显示完整的回溯(很漂亮 - 带有堆栈帧、本地变量等),而不仅仅是“*** IndexError:列表索引超出范围”。我怎么做?

0 投票
0 回答
213 浏览

ipython - ipython 样式选项卡包含用于导入模块的 ipdb

我正在尝试通过使用 ipdb 来获得带有 pdb 的 ipython 样式表。

在干净的 ubuntu 14.04 安装(新的 aws 实例)上我运行。

然后启动 ipython,然后尝试。

boto.[tab] 就坐在那里。如果我正确阅读文档,这应该可以,但也许我错过了一些东西。

如果我定义一个简单的脚本test.py

然后调用:

我得到了我想要的行为。

有谁知道如何使选项卡的完整功能适用于 set_trace() 工作案例?

-谢谢

0 投票
1 回答
162 浏览

python - 使用 Macports 安装 ipdb 时出错

我想在运行 Yosemite 的 Mac 上安装 ipdb。当我输入这个:

它给了我这个错误:

如何解决这个问题?

0 投票
2 回答
225 浏览

python - 支持黑盒的 Python 调试器?

如果我使用调试器,大多数时候我只想看看解释器在我的代码中做了什么。我想跳过我使用的框架和库的所有代码。

AFAIK 这被称为黑拳

如何使用 Python ipdb 或其他 Python 调试器执行此操作?

想象一下:

我使用我信任的 orm 框架,并且不想调试。

该方法cut_hair_method()是我的,我想调试它。

来自我使用的orm_object框架。调试器将进入 orm-code 并做一些我不关心的特殊事情。我没有办法告诉调试器:不要跳入orm代码!

更新

对于我的情况,很容易决定哪些代码应该在黑盒中,哪些代码不应该:代码$VIRTUAL_ENV/src/不在黑盒中,所有其他代码都在。除非我明确告诉调试器别的东西。

更新2

我有这篇文章中的“黑拳”这个名字:https ://hacks.mozilla.org/2013/08/new-features-of-firefox-developer-tools-episode-25/

0 投票
1 回答
920 浏览

python - ipython事后调试:外部函数的范围

考虑以下代码:

在 IPython 中,引发异常后,%debug行魔术会在以下范围内打开 python 调试器inner()

您如何告诉 (i)pdb 进入范围outer()以保存到目前为止生成的结果?

0 投票
1 回答
628 浏览

python - tab-completion 在运行 ipdb 的 emacs shell 中不起作用(但在普通 bash shell 中它起作用)

我一直在尝试各种 stackoverflow 讨论中的很多提示和技巧以及更多,但我无法解决这个问题,请帮助:

什么在我的 bash shell 中有效:

我有这个 python 脚本:

当我运行它时,我得到了预期的 ipdb 提示,当我输入“a.TAB”时,一些自动完成功能会建议所有这样的功能:

什么在我的 EMACS shell 中不起作用:

当我做同样的事情,但随后在 emacs shell 中时,选项卡完成不起作用。我指的是 TAB 和 M-TAB。在这种情况下,Emacs 告诉我“不匹配”。顺便说一句:当我编辑 python 文件时,M-TAB确实完成了。这整件事对我来说有点令人讨厌(这是一个轻描淡写的说法)。

我已经安装了许多建议的软件包:

顺便说一句:此设置中没有选项 Mx RET jedi:install-server。

我的环境:

我也尝试过:

我还尝试(也没有工作)使用安装软件包的不稳定 melpa 源( http://melpa.milkbox.net/packages ):

顺便说一句:此设置中提供了Mx RET jedi :install-server 选项。

有任何想法吗 ... ?

0 投票
1 回答
397 浏览

python - Python Debugging Using Pdb

I'm using a interactive graphical Python debugger with ipdb under the hood (Canopy's graphical debugger). The script I am working on has multiple imported modules and several calls to their respective functions. Whenever I attempt a debugging run, execution gets stuck somewhere within a call to an imported module's function (specifically subprocess). My two main questions are:

1) Does running in debug mode slow things down considerably? Is the code not actually stuck, but just running at a painfully slow rate?

2) Is there a way to completely pass over bits of code and run them as if I were not even debugging? I want to prevent the debugger from diving into subprocess and just execute it as if it were a normal run.

I might toss the graphical debugger and do everything from a terminal, but I would like to avoid that if I can because the graphical interface is really convenient and saves a lot of typing.

0 投票
0 回答
498 浏览

python - 在调试和重新加载所有模块时重新运行代码

在调试我的 Python 代码时,我从命令行通过 ipdb 运行一个脚本,并设置了一些断点。然后我对一个或多个模块进行一些更改,然后重新运行。但是,如果我只是使用run模块,则不会重新加载。为了确保它们这样做,我可以完全退出并重新启动 Python,但是我需要重置所有断点,如果我有很多并且一遍又一遍地完成,这将是乏味的。

有没有办法重新启动 (i)pdb 中的运行,并确保所有模块都被递归重新加载?

0 投票
1 回答
1662 浏览

python - Save breakpoints to file

When debugging my Python code, I run a script through ipdb from the commandline, and set a number of breakpoints. Then I make some changes in one or more modules, and rerun. However, if I simply use run modules do not get reloaded. To make sure they do, I can exist and restart Python completely, but then I need to reset all breakpoints, which is tedious if I have many and if done over and over again.

Is there a way to save breakpoint to a file in (i)pdb, so that after small changes that do not change line numbers, I can dump my breakpoints, restart Python + pdb, and reload my breakpoints? The equivalent to Matlabs X = dbstatus, saving/loading X, and setting dbstop(X).