2014-09-30 118 views
7

有没有办法告诉pyCharm它应该跳过框架代码?调试器应该跳过所有不属于我的行。pyCharm调试:跳过框架代码

在我的情况下,它是很容易地告诉我想要的代码,调试和不:

  • 守则的virtualenv lib应跳过
  • 守则的virtualenv src应该进行调试。

如果我按F7(步入)它应该跳过所有不是我的代码库的行。

+0

这种黑盒子的缺乏也令我很烦恼。我会建议提交功能请求。 – 2014-11-19 19:10:24

+1

[用pycharm进行调试,如何进入项目,无需进入django库]可能重复(http://stackoverflow.com/questions/15164565/debugging-with-pycharm-how-to-step-into-project-without -entering-django-librar) – 2014-11-21 00:25:42

回答

6

[更新2015年5月:在PyCharm推出4.5]

有两个新的功能现在,其中一个是你问的人,但是我要提到另外一个也因为它是局部非常关。

从4.5版本说明:

步入我的代码

把注意力集中在你的代码告诉调试器来逐步只能通过项目的代码,而不是通过库源步进。

[...]

忽略库文件

调试器与新的 '忽略库文件' 选项的提高。如果在库模块中引发异常,而不是在库代码内部停止,使用它可以让代码停止在代码中。 在这种answer中提到,您可以添加模块来忽略为“在/helpers/pydev/pydevd.py的字典DONT_TRACE”

[学习blackboxing调试库后更新]

the issue tracker有一个未解决的问题。

[原创答案] 这是不可能跳过这样的代码,但你可以通过一行代码行行走和运行调试会话做出更大的跳跃之间通过简单地增加一个断点灵活地切换(同时调试 - 断点可以在正在运行的调试会话中更改)放在要跳过的库代码后面的位置,然后在调试器中按下“恢复程序”。库代码会被跳过,并返回到代码中。

您可能还想使用条件断点来确保当程序处于所需状态时程序正好进入调试器:右键单击断点并输入必须评估为True的条件该行的上下文。 The conditional breakpoint makes sure that the execution stops when idx has the desired value.

+0

这比简单的黑盒子功能所做的工作要多得多。 – 2014-11-19 19:11:26

+0

@Oliver我知道我可以像解释一样手动跳过代码。 Turbo Pascal有这个功能。我认为这是在1993年左右。:-) – guettli 2014-11-20 11:44:55

+1

@guettli o.k.现在我明白了。对我而言,你的问题只是没有说清楚,我真的不知道黑箱的概念。不错的概念,但后来可悲的是不支持pycharm:http://forum.jetbrains.com/thread/PyCharm-2450(我猜)。 – 2014-11-20 21:45:27