在Delphi中开发Windows桌面内容时,我习惯于插入
asm(int 3);
。
如果调试器正在运行,则它就像一个断点。如果没有调试器在运行,则不执行任何操作(NOOP
)。
我想为我的Python脚本做类似的事情。是否有一些HaltDebugger()
之类的Python函数?当然,跨平台。
[更新]我正在寻找适用于PyCharm的东西
答案 0 :(得分:2)
这是最便携式的解决方案。下面为PyCharm绘制了一个更困难的草图。
种类取决于调试器,但是如果您使用pdb
(将是跨平台的),则the docs state:
从正在运行的程序进入调试器的典型用法是 插入
import pdb; pdb.set_trace()
您希望这是有条件的,因此可以在每个断点处粘贴:
try: pdb.set_trace()
except NameError: pass
,并且只想在顶部调试import pdb
时。如果必须为一行,则不能使用鸭子类型。相反:
if 'pdb' in globals(): pdb.set_trace()
仅限PyCharm
假设您坚持不使用鼠标标记调试行,这可能会起作用:
PyCharm为Python,Django和Java提供异常断点 JavaScript。
当指定的异常为时触发异常断点 抛出。与断点不同,断点需要特定的来源 引用,异常断点全局应用于异常 条件,而不是特定的代码引用。
根据处理异常的类型,调试可以 当进程异常终止时或 发生异常。
您可以:
DebugException
粘贴
try: raise DebugException()
Exception: pass
您想打破的任何地方。不用鼠标双击标记断点似乎很麻烦。