更简单的办法把PDB断点在Python代码?更简单的办法把PDB断点在Python代码?(Simpl

2019-05-13 09:28发布

只是一个方便的问题。 我一直有点用调试器像Visual Studio和XCode的集成开发环境破坏。 我觉得这是一个有点笨拙必须键入import pdb; pdb.set_trace() import pdb; pdb.set_trace()设置一个断点(我宁愿没有在文件的顶部导入PDB,因为我可能会忘记,并把它留在)。

是否有设置在Python代码断点,那么简单和不显眼的你在IDE看到一个更简单的方法?

Answer 1:

您可以运行您的程序到pdb在命令行中运行

蟒蛇-m PDB your_script.py

这将打破一号线,那么你就可以添加,无论你在使用你的代码需要一个断点break命令,其语法是:

B(reak)[[文件名:] LINENO | 函数[,条件]]

它具有足够的灵活性,让您随时随地添加断点的能力。



Answer 2:

您可以使用:

from pdb import set_trace as bp

code
code
bp()
code
code


Answer 3:

在vim中,我有一个宏设置为这个(在我的.vimrc文件):

map <silent> <leader>b oimport pdb; pdb.set_trace()<esc>
map <silent> <leader>B Oimport pdb; pdb.set_trace()<esc>

这样我就可以按\ B(插入模式没有),并在一个断点当前行,或者\ B(注意是大写)后增加了,它把一个当前行之前。

这似乎是正常的工作。 大多数其他“简单”的程序员编辑器(emacs的,sublimetext等)应该有类似简单的方法来做到这一点。

编辑:我其实有:

au FileType python map <silent> <leader>b oimport pdb; pdb.set_trace()<esc>
au FileType python map <silent> <leader>B Oimport pdb; pdb.set_trace()<esc>

这打开它只是个面向Python的源文件。 你可以很容易地添加类似于线可以使用JavaScript或任何其他语言。



Answer 4:

如果你不希望每次都手动设置断点运行的程序(在Python 3.2+),例如说你要直接创建第3行断点和停止执行有:

python -m pdb -c "b 3" -c c your_script.py

下面的信息可能会有所帮助:

如果用户的主目录中或在当前目录下存在文件.pdbrc,它被读入并,如果它已在调试器提示符下键入了执行。 这是别名特别有用。 如果存在这两个文件,一个在主目录中读取第一和别名定义存在可以通过本地文件覆盖。

在3.2版本中更改:.pdbrc现在可以包含继续调试命令,如继续或明年。 以前,这些命令都没有效果。

新版本3.2:pdb.py现在接受仿佛在.pdbrc文件中给出的,看到调试命令执行命令的-c选项。

  • 来源: https://docs.python.org/3.2/library/pdb.html


Answer 5:

我还没有尝试过,但他们只是实现一个新的内置称为断点()在Python 3.7,这意味着你现在可以插入一个声明断点:

breakpoint()


Answer 6:

这是你将如何使用PDB在命令行没有在源代码中执行任何(文档和其他在线资源不做好解释这谁也只是在过去使用的可视化调试器编程):

通过键入一个shell提示符下启动PDB:

python -m pdb 'python_script'

此命令初始化PDB和PDB调试器会在您的python_script的第一行中断和等待您的输入:

(Pdb)

这是与调试器通信的接口。 现在,你可以在这里指定你的命令。 反对使用视觉调试器按钮或键盘快捷键,在这里你会使用命令来获得相同的结果。

你可以在你的代码的下一行的命令“N”(下):

(Pdb) n

执行下一个将显示的行号,和在所述源的特定代码:

> python_script(line number)method name
-> current line in the source code

您可以通过在源代码中指定行数设置一个断点。

(Pdb) b 50

在这里,调试器设定在50行如果没有任何其他断点突破,在第50行的断点将是第一个,它可以通过断点ID在这种情况下为1引用。 如果你添加更多的破发点,他们将得到顺序标识符(即,2,3等)

一旦设置了断点,你会继续执行程序,直到PDB到达断点如下:

(Pdb) c

一旦你到了断点,如前所述,你可以转到下一行,用n命令。 如果你想检查的变量的值,你可以按如下方式执行参数的命令:

(Pdb) p variable_name

如果你不再需要一个断点,你可以通过与清除命令断点的ID清除:

(Pdb) clear 1

最后,当您使用调试器做,你可以退出执行,你会退出Python命令行解释。

(Pdb) exit()

我希望这将有助于任何人开始使用PDB。 这里是你可以用调试器中使用的命令列表: PDB所以问题和答案



Answer 7:

你可以使用它支持Python调试的IDE,或者你可以检查出的优秀Winpdb工具。 这在任何平台上,并提供图形化调试工具来使您的Python脚本。

http://winpdb.org/



Answer 8:

您可以使用:

  • 翼IDE
  • 与插件的PyDev蚀
  • pycharms

所有从IDE内上述支撑蟒蛇调试。



Answer 9:

Python的3.7具有断点设置一个新的内建的方法。 调用

breakpoint()

这里更多https://stackoverflow.com/a/53263117/6488361



Answer 10:

在凌动如果安装了Python的插件,你可以键入“ pdb ”并回车和片段将键入的进口和追溯你。

我用这个,现在有时我只是,即使我编辑它在vim和等待的下拉菜单,显示输入。



Answer 11:

最简单的方法来运行调试你的脚本只是

pdb your_script.py

PDB运行在Linux命令行给出

usage: pdb.py scriptfile [arg] ...


文章来源: Simpler way to put PDB breakpoints in Python code?
标签: python pdb