【问题标题】:Is there break function in python (for PyCharm or other IDE)?python 中是否有中断功能(用于 PyCharm 或其他 IDE)?
【发布时间】:2016-12-10 10:09:52
【问题描述】:

C++中有__debugbreak函数。

我需要在我的 Python 代码(使用 PyCharm IDE)中使用类似的函数来破坏运行时恢复的可能性。

【问题讨论】:

  • 在 PyCharm 中将光标放在要中断的行并 CRTL+F8
  • @DeepSpace 没有。我想使用特殊断言来放置条件断点
  • 可以添加条件断点...
  • @DeepSpace,是否有步出功能?

标签: python debugging pycharm breakpoints break


【解决方案1】:

有提供交互式调试器的 pdb(和 ipdb)模块。

你可以使用

import pdb; pdb.set_trace()

在任意位置插入断点。

我不确定这些将如何与 PyCharm 一起使用(无论如何,您应该能够单击以添加断点),但您的问题的字面答案是“是”。

从命令行使用 ipdb 是调试 Python 代码的一种非常简单的方法。

https://docs.python.org/2.7/library/pdb.html

【讨论】:

  • 我用的是Pycharm,这仍然是我断点调试的主要方式。
  • @Roman,但我做不到。我只收到警告:PYDEV DEBUGGER WARNING: sys.settrace() should not be used when the debugger is being used。这可能会导致调试器停止正常工作。如果需要,请查看:pydev.blogspot.com/2007/06/… 了解如何正确恢复调试跟踪。
  • @Broly 启动一个新闻脚本,将import pdb; pdb.set_trace()粘贴进去并正常运行。您应该获得一个可以在其中工作的交互式断点。如果您只是使用 Pycharm 创建终端,或者如果您 Ctrl+Shift+F10(右键单击,运行),这都适用。如果这是您想要的,那么将其放入您的代码中。
  • @Roman 它没有任何效果。只有这条消息:--Return--> c:\users\broly\applications\baseapp\appsettings.py(17)()->None -> import pdb; pdb.set_trace() (Pdb)
  • @Broly 我认为它确实有效。行首的(Pdb) 表示您在调试器中。你可以知道,因为如果你按Ctrl-C,你会得到一个KeyboardInterrupt。快速演示:for i in range(5): print(i) 打印 0-4。 for i in range(5): print(i); import pdb; pdb.set_trace() 将打印 0,然后将您放入调试器。如果您随后调用i,它将返回 0,因为您仍处于循环的第一轮。 (注意,请不要像我在上面所做的那样在 python 中将命令与; 串在一起。将它们放在新行中)
猜你喜欢
  • 2015-12-31
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
相关资源
最近更新 更多