Questions tagged «pdb»

此标记引用Python调试器。对于有关蛋白质数据库文件格式的问题,请使用蛋白质数据库标签。

15
使用IPython进行分步调试
根据我的阅读,有两种方法可以在Python中调试代码: 使用传统的调试器,例如pdb或ipdb。它支持诸如cfor continue,nfor step-over,sfor step-into等命令,但是您没有直接访问IPython shell的权限,这对于对象检查非常有用。 通过将 IPython shell 嵌入代码中来使用 IPython。您可以这样做,然后在您的代码中使用。当您的程序/脚本命中一条语句时,您将进入IPython shell。这允许使用所有IPython好东西对对象进行全面检查并测试Python代码。但是,在使用时,您将无法通过便捷的键盘快捷键逐步完成代码。from ipython import embedembed()embed()embed() 有什么办法可以融合两全其美?即 能够 使用方便的pdb / ipdb键盘快捷键逐步完成代码。 在任何这样的步骤(例如,在给定的语句上),都可以访问成熟的IPython shell。 如在 MATLAB中一样进行 IPython调试: 在MATLAB中可以找到这种“增强调试”类型的示例,在该示例中,用户始终可以完全访问MATLAB引擎/外壳,并且她仍然可以逐步完成代码,定义条件断点等。我已经与其他用户讨论过,这是人们从MATLAB转移到IPython时最想念的调试功能。 在Emacs和其他编辑器中进行IPython调试: 我不想让这个问题过于具体,但是我主要在Emacs中工作,所以我想知道是否有任何方法可以将此功能引入其中。理想情况下,Emacs(或编辑器)将允许程序员在代码上的任意位置设置断点,并与解释器或调试器进行通信,以使其在您选择的位置停止,并在该位置提供完整的IPython解释器。
170 python  debugging  emacs  ipython  pdb 

7
如何在Python自己的调试器(PDB)中执行多行语句
因此,我正在运行一个Python脚本,在其中编写以下代码来调用Python的调试器PDB: import ipdb; ipdb.set_trace() (iPython的PDB版本,尽管如此,我认为这没有什么区别;我仅将其用于彩色输出)。 现在,当我进入调试器时,我想执行多行语句,例如if子句或for循环,但是只要输入 if condition: 然后按回车键,我得到错误信息 *** SyntaxError: invalid syntax (<stdin>, line 1) 一个人如何在PDB中执行多行语句?如果不可能,是否有办法解决仍然执行if子句或for循环的问题?

10
在iPython Notebook中进行调试的正确方法是什么?
我所知, %debug magic可以在一个单元内进行调试。 但是,我有跨多个单元格的函数调用。 例如, In[1]: def fun1(a) def fun2(b) # I want to set a breakpoint for the following line # return do_some_thing_about(b) return fun2(a) In[2]: import multiprocessing as mp pool=mp.Pool(processes=2) results=pool.map(fun1, 1.0) pool.close() pool.join 我试过的 我试图%debug在cell-1的第一行中设置。但是它甚至在执行单元2之前就立即进入调试模式。 我试图%debug在代码之前添加该行return do_some_thing_about(b)。但是,代码将永远运行,永远不会停止。 在ipython笔记本中设置断点的正确方法是什么?

5
如何退出pdb并允许程序继续?
我正在使用pdb模块调试程序。我想了解如何退出pdb并允许程序继续进行到完成。该程序的运行在计算上很昂贵,所以我不想在脚本未尝试完成的情况下退出。continue似乎不起作用。如何退出pdb并继续执行我的程序?
111 python  pdb 

13
将PDB断点放入Python代码的更简单方法?
只是一个方便的问题。我对诸如Visual Studio和XCode之类的IDE中的调试器非常满意。我发现必须键入import pdb; pdb.set_trace()设置断点有点笨拙(我宁愿不要将pdb导入文件的顶部,因为我可能会忘记并将其保留在里面)。 是否有更简单的方法在Python代码中设置断点,就像在IDE中看到的那样简单明了?
105 python  pdb 

4
如何处理名称与PDB命令冲突的变量?
不管是好是坏,我的代码充斥着单个字母变量(这是物理上的东西,所以这些字母是有意义的)以及我经常与之交互的NumPy。 使用Python调试器时,偶尔我会想看看的值n。但是,当我点击时n<enter>,这是PDB命令的(n)ext优先级更高。 print n可以解决问题,但是如何设置呢?
95 python  pdb 

4
使用鼻子测试--pdb选项设置断点
nosetests --pdb让我在出现错误或失败时停止操作,但这对我来说太迟了。在执行过程中单步执行代码可以帮助我调试问题所在。 但是,鼻子测试很有用,因为它们允许依赖于相对进口的测试(即包装中的测试)。 在执行测试之前如何设置断点?目前,我正在使用: python -m pdb /path/to/my/nosetests testfile.py 该解决方案是不够的。Noestest会干扰pdb的输出,并且我的键盘控件(例如,箭头键)已损坏。 使用import pdb; pdb.set_trace()似乎是个好主意,但是鼻子测试阻止了我对pdb控制台的访问。
88 python  testing  nose  pdb 

5
python pdb-跳过循环
如何跳过使用的循环pdb.set_trace()? 例如, pdb.set_trace() for i in range(5): print(i) print('Done!') pdb在循环之前提示。我输入了一条命令。返回所有1-5个值,然后pdb在print('Done!')执行之前再次提示我。
88 debugging  pdb 


2
Python调试器pdb入门[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我想将pdb( Python调试器)添加到我的工具箱中。最好的入门方法是什么?
78 python  pdb 

6
以某种方式使用py.test时可以使用python调试器进行调试吗?
我正在使用py.test对python程序进行单元测试。我希望使用python调试器以正常方式调试测试代码(在代码中我的意思是pdb.set_trace()),但是我无法使其正常工作。 将pdb.set_trace()放入代码中不起作用(引发IOError:捕获输出时从stdin读取)。我也尝试使用--pdb选项运行py.test,但是如果我想探索断言之前发生的事情,那似乎并没有解决问题。当断言失败时,它会中断,并且从那一行继续进行就意味着终止程序。 有谁知道获取调试的方法,或者调试和py.test并不意味着在一起吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.