草庐IT

python - pdb/ipdb 用于可编辑条件下的 python 中断

假设我有以下代码:foriinrange(100):printi一般我可以在代码中添加一行:foriinrange(100):importipdb;ipdb.set_trace()printi但是,现在我想在i==10的条件下调试它,我不想在ipdb中键入c10次,我该怎么办?在文档中我找到了conditionbpnumber[condition],但是如果没有bpnumber索引列表,我怎么知道bpnumber.文档还说b(reak)([file:]lineno|function)[,condition]。例如,假设printi的行号是xx。我在ipdbshell中输入了以下内容:b

Python-pdb 跳过代码(如 "not execute"中)

有没有办法在pdb中完全跳过一两行?假设我有一个pdbsession:>print10importpdb;pdb.set_trace()destroy_the_universe()#sideeffectuseful_line()我想直接进入有用的行()而不再次调用pdb(),或者破坏宇宙。有没有办法跳过(即不执行代码)之间的内容打印10和有用的行()? 最佳答案 使用j/jump命令:test.py包含:defdestroy_the_universe():raiseRuntimeError("Armageddon")defusefu

python - 使用 pdb 调试 Python 时引发 BdbQuit

最近将pdb调试器添加到我的Python2.7.10代码时,我收到以下消息:Traceback(mostrecentcalllast):File"/Users/isaachess/Programming/vivint/Platform/MessageProcessing/vivint_cloud/queues/connectors/amqplib_connector.py",line191,inacking_callbackcallback(message.body)File"/Users/isaachess/Programming/vivint/Platform/MessagePro

python - 在 Emacs 中获取 pdb 以使用当前 virtualenv 中的 Python 进程

我正在使用pdb在emacs中调试一些python代码并遇到一些导入问题。依赖项安装在我定制的virtualenv环境之一中。Pdb顽固地使用/usr/bin/python而不是我的virtualenv中的python进程。我使用virtualenv.el来支持emacs中的环境切换以及通过中描述的postactivateHookhttp://jesselegg.com/archives/2010/03/14/emacs-python-programmers-2-virtualenv-ipython-daemon-mode/这在运行M-xpython-shell时效果很好>>>impo

python - 在 Sublime Text 3 中运行 Python 调试器 (pdb)

如何在SublimeText3中设置python调试器(pdb)断点?两者SublimeREPL或PythonBreakpoints默认python构建系统失败:print"hello"#coderunsfinewithoutthisbreakpointimportpdb;pdb.set_trace()print"bye">>>File"C:\Python27\lib\bdb.py",line49,intrace_dispatch>>>returnself.dispatch_line(frame)>>>File"C:\Python27\lib\bdb.py",line68,indisp

python - 使用 pdb 附加进程

我有一个我怀疑存在死锁的python脚本。我试图使用pdb进行调试,但如果我一步一步进行,它不会出现死锁,并且通过返回的输出我可以看到它没有被卡在同一个迭代中。我想仅在脚本被锁定时将其附加到调试器,这可能吗?如有必要,我愿意使用其他调试器。 最佳答案 此时,pdb无法暂停并开始调试正在运行的程序。您还有其他几种选择:GDB您可以使用GDB在C级别进行调试。这有点抽象,因为您正在研究Python的C源代码而不是实际的Python脚本,但它在某些情况下可能很有用。说明在这里:https://wiki.python.org/moin/De

python - 是否可以在 pdb 中倒退?

在我点击n来评估一行之后,如果它失败,我想返回然后点击s以进入该函数。这可能吗?文档说:j(ump)线号设置将要执行的下一行。仅在最底部的框架中可用。这使您可以向后跳转并再次执行代码,或者向前跳转以跳过您不想运行的代码。 最佳答案 GNU调试器gdb:它非常慢,因为它一次撤消一条机器指令。Python调试器pdb:jump命令将您带回代码中,但不会反转程序的状态。对于Python,为此创建了扩展的Python调试器原型(prototype)epdb。这里是thesis这是programandthecode.我使用epdb作为起点,创

python - 如何查看 pdb 中的变量

我正在调试一个python脚本,我想观察一个变量的变化(就像你可以在gdb中观察一个内存地址一样)。有没有办法做到这一点? 最佳答案 使用pdb的数据断点...muchlikeyoucanwatchamemoryaddressingdb...GDB使用数据断点,这通过硬件支持(硬件观察点)变得容易,这通常涉及将内存页面标记为只读,然后在内存访问时触发异常处理程序。当硬件观察点不可用时,它使用软件观察点,这些仅在单线程中有用并且速度要慢得多。PDB不支持数据断点,因此简短的回答是NO,您无法使用PDB做到这一点开箱即用。在pdb中遇到

python - 如何操作名称与 PDB 命令冲突的变量?

无论好坏,我的代码都充斥着单字母变量(它是物理的东西,所以这些字母是有意义的),以及我经常与之交互的NumPy。使用Python调试器时,有时我会想查看n的值。.然而,当我点击n,这是(n)ext的PDB命令,具有更高的优先级。printn可以查看它,但我该如何设置它? 最佳答案 在语句前使用感叹号!让它运行:python-mpdbtest.py>/home/user/test.py(1)()->print('foo')(Pdb)!n=77(Pdb)!n77(Pdb)nfoo>/home/user/test.py(2)()->pri

python - Python 调试器 pdb 入门

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describetheproblem以及到目前为止为解决这个问题所做的工作。关闭9年前。Improvethisquestion我要添加pdb——Python调试器——到我的工具箱。最好的入门方式是什么? 最佳答案 以下是开始使用Python调试器的资源列表:阅读SteveFerb的文章"Debuggin