【问题标题】:pyCharm Debugging: skip framework codepyCharm 调试:跳过框架代码
【发布时间】:2014-11-24 19:30:00
【问题描述】:

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

在我的情况下,很容易判断我要调试哪些代码,哪些不是:

  • virtualenv lib 中的代码应该被跳过
  • 应调试 virtualenv src 中的代码。

如果我按 F7(Step Into),它应该会跳过所有不在我的代码库中的行。

【问题讨论】:

标签: debugging pycharm


【解决方案1】:

[2015 年 5 月更新:在 PyCharm 4.5 中引入]

现在有两个新功能,其中一个是您要求的,但我也提到另一个,因为它在主题上非常接近。

来自 4.5 发行说明:

进入我的代码

告诉调试器只单步执行您的项目代码,而不是单步执行库源代码,从而专注于您的代码。

[...]

忽略库文件

使用新的“忽略库文件”选项改进了调试器。使用它来让调试器在您的代码中停止,以防在库模块中引发异常,而不是在库代码中停止。

[了解调试中的黑盒库后更新] 在这个answer 中提到您可以将要忽略的模块添加到“/helpers/pydev/pydevd.py 中的 dict DONT_TRACE”中

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

[原答案] 不可能跳过这样的代码,但是您可以通过简单地添加另一个断点来灵活地在逐行遍历代码和在正在运行的调试会话中进行更大的跳转之间切换(在调试时 - 可以在运行调试中更改断点session) 在要跳过的库代码之后的位置,然后在调试器中按“恢复程序”。库代码被跳过,你回到你的代码中。

您可能还想使用条件断点来确保程序在程序处于您想要的状态时准确地进入调试器:右键单击断点并在该行的上下文。

【讨论】:

  • 这比一个简单的黑盒功能要做的工作要多得多。
  • @Oliver 我知道我可以像你解释的那样手动跳过代码。 Turbo Pascal 有这个功能。我想是在 1993 年左右。:-)
  • @guettli 好的。现在我明白了。对我来说,你的问题当时还不够清楚,我真的不知道黑盒的概念。不错的概念,但遗憾的是 pycharm 还不支持:forum.jetbrains.com/thread/PyCharm-2450(我猜)。
  • 在答案中添加了hacky方式和open issue以反映当前情况。
  • 它可作为异常断点的选项使用(终止时;引发时;忽略库文件)。见jetbrains.com/pycharm/help/breakpoints-2.html
猜你喜欢
  • 2020-10-10
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 2020-07-23
  • 2013-08-16
  • 1970-01-01
  • 2019-12-26
  • 2016-05-23
相关资源
最近更新 更多