调试时让xdebug跳过某些函数

kam*_*lot 5 php debugging zend-framework xdebug

所以基本上我使用Zend Framework的自动加载器来自动加载我的功能.但是因为每当我调试时,如果我调用任何函数,xdebug会转到自动加载函数,然后再转到正在调用的实际函数.

因此,如果我调用该函数func(),它将首先进入autoload(),然后func()在时间方面增加调试成本等

理想情况下,如果我调用func(),它应该在仍然使用自动加载器时直接转到func().

有没有办法在我调试时指定xdebug(或使用任何PHP/Zend hack等)来总是跳过某个函数(在这种情况下我的自动加载函数)?

unc*_*ive 6

在偏好中使用pdt的eclipse:PHP - > Debug - > Step Filtering,单击Add Filter,我添加了Autoloader.inc,不再需要通过它

有关更多可视指令,请参阅step_filtering_preferences


buz*_*all 5

我知道这是一个老问题,但我是从谷歌来到这里的。在 phpStorm 中,您可以忽略将其添加到的特定函数:

首选项 > PHP > 调试 > 步骤过滤器

如果是非静态方法,则使用 -> ;如果是静态方法,则使用 ::

phpstorm 偏好设置


Gor*_*onM 1

如果您单步执行代码,那么您确实应该考虑使用断点。如果您在所调查的代码块的开头设置断点,则可以使用“运行到断点”选项来跳过在所调查的代码之前运行的所有代码。

如果您在要研究的类的构造函数的开头设置断点,或者在要研究的方法的开头设置断点(如果您确定对象实例化正常的话),那么您可以跳过自动加载器。

Netbeans 和 Eclipse PDT 都支持通过单击要研究的代码的行号来设置断点。

此外,调试器中还有“step out”选项,可让您跳出使用“step in”选项跳入的函数/方法。如果您发现自己处于自动装弹机中,请立即退出。