pdb和winpdb似乎都缺少这个必要的(对我来说)功能.我看到WingIDE有这样的东西,但我更喜欢免费的解决方案,如果我必须支付,我宁愿支付比Wing更好的东西.
一般来说,您对此有何建议?目前,我需要将近10分钟的时间来附加到托管SharePoint 2007的本地运行的IIS进程.
我已经开始在emacs 23.3中通过gud使用pdb,如何从缓冲区挂钩发送到调试器的命令消息?我写了下面的建议与gdb一起使用,以便持久化comint的响铃,但找不到与pdb挂钩的等效函数.我使用python-mode.el作为我的主要模式.
谢谢.
(defadvice gdb-send-item (before gdb-save-history first nil activate)
"write input ring on quit"
(if (equal (type-of item) 'string) ; avoid problems with 'unprintable' structures sent to this function..
(if (string-match "^q\\(u\\|ui\\|uit\\)?$" item)
(progn (comint-write-input-ring)
(message "history file '%s' written" comint-input-ring-file-name)))))
Run Code Online (Sandbox Code Playgroud) 想象一下以下场景:从IPython shell启动脚本,并在断点处调用python调试器.使用PDB命令,可以在此时分析代码和变量.但事实证明,变量的值需要进行更深入的研究.
是否可以将变量的值导出到IPython shell?
我的具体用例:我遇到了一个非常庞大的numpy数组,似乎没有正确的值.我知道我可以从python调试器运行任何python命令,但将变量的值保存在不同的断点并在IPython shell中使用所有这些命令会很有帮助.我想像这样的东西
ipdb> global var1; var1 = var
ipdb> continue
...
ipdb> global var2; var2 = var
ipdb> continue
...
In [2]: abs(var1 - var2) # do some interesting calculations with IPython
Run Code Online (Sandbox Code Playgroud) 我正在使用Jupyter(IPython)笔记本,其中pdb/ipdb运行良好,除了一个问题:如果我在pdb模式下意外运行我的pdb所在的同一个单元格,输出消失,整个笔记本卡住了我无法再运行任何命令.我也试过打断或重启内核; 不起作用.我唯一的选择是关闭笔记本电脑,然后重新启动它.
有没有其他人遇到这个问题/知道解决方案?我每次犯这个错误都要重新启动笔记本电脑非常烦人.
以下是问题的屏幕截图.下面我按照预期的pdb模式:
如果我(不小心)运行我的pdb所在的同一个单元格,那么笔记本会在尝试运行该单元格时遇到困难,并且不会运行任何其他单元格(如下面的单元格).
所以我使用PDB逐步执行脚本并引发异常,但由于某种原因,它将异常缩写为不可读的点.如何打印整个例外?我可以获得对异常的引用吗?我认为这将是一个内置命令,如"rv".
在 中gdb,我们可以使用它layout src来获得一个非常好的调试文本 UI。pdb(Python 调试器)有等效的东西吗?在 中pdb,我只能看到将要执行的下一行,这很烦人。
gdb text ui如下图所示:
我需要在当前文件以外的文件中设置断点,但我不想退出 pdb 并进入我的编辑器以找出它应该位于哪个行号。
如何列出行源代码的文件,是不是当前打开的文件?
如果我想调试通过 "pip install packagename" 安装的包 packagename 的 setup.py 文件,有没有办法这样做?我尝试下载源代码,在 setup.py 中添加 set_trace() 并运行:
pip install .
Run Code Online (Sandbox Code Playgroud)
但是,一旦我收到 pdb() 提示,安装就会失败并显示错误:
processing /Users/skauser/python-ibmdb/IBM_DB/ibm_db
Complete output from command python setup.py egg_info:
> /private/var/folders/b6/pmddncpn77550p8_g9kkx9f40000gp/T/pip-req-build-_fg8s5a2/setup.py(31)<module>()
-> machine_bits = 8 * struct.calcsize("P")
(Pdb)
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/b6/pmddncpn77550p8_g9kkx9f40000gp/T/pip-req-build-_fg8s5a2/setup.py", line 31, in <module>
machine_bits = 8 * struct.calcsize("P")
File "/private/var/folders/b6/pmddncpn77550p8_g9kkx9f40000gp/T/pip-req-build-_fg8s5a2/setup.py", line 31, in <module>
machine_bits = 8 * struct.calcsize("P")
File "/Library/anaconda3/lib/python3.7/bdb.py", line 88, in trace_dispatch
return self.dispatch_line(frame)
File "/Library/anaconda3/lib/python3.7/bdb.py", …Run Code Online (Sandbox Code Playgroud) pdb ×10
python ×8
debugging ×3
breakpoints ×1
elisp ×1
emacs ×1
exception ×1
gdb ×1
gdb-python ×1
gud ×1
installation ×1
ipdb ×1
ipython ×1
pip ×1
setup.py ×1