调试时让xdebug跳过某些函数

时间:2011-10-27 05:00:18

标签: php debugging zend-framework xdebug

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

因此,如果我调用函数func(),它将首先转到autoload(),然后转到func(),这会增加调试成本,等等。

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

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

3 个答案:

答案 0 :(得分:6)

在偏好中使用pdt进行eclipse: PHP - >调试 - >步骤过滤 单击添加过滤器,我添加了Autoloader.inc,不再需要通过它

有关更多直观说明,请参阅step_filtering_preferences

答案 1 :(得分:1)

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

如果在要调查的类的构造函数的开头设置断点,或者如果确定对象实例化正常,则要调查方法的开头,则可以跳过自动装载器。

Netbeans和Eclipse PDT都支持设置断点,只需单击要调查的代码的行号即可。

此外,调试器中还有“跳出”选项,可让您跳出使用“步入”选项跳转到的功能/方法。如果您发现自己在自动加载器中,请立即退出。

答案 2 :(得分:1)

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

偏好设置> PHP>调试>步骤过滤器

with - >如果它是非静态方法或::如果它是静态的

phpstorm preferences