Xdebug пропустить определенные функции при отладке - PullRequest
5 голосов
/ 27 октября 2011

поэтому в основном я использую автозагрузчик Zend Framework для автозагрузки своих функций. Но из-за этого всякий раз, когда я отлаживаю, если я вызываю какую-либо функцию, xdebug переходит в функцию автозагрузки, прежде чем перейти к фактической вызываемой функции.

Поэтому, если я вызову функцию func(), она сначала перейдет к autoload(), а затем func(), что увеличивает стоимость отладки с точки зрения времени и т. Д.

В идеале, если я вызываю func (), он должен идти напрямую к func (), все еще используя автозагрузчик.

Есть ли способ указать xdebug (или использовать любой взлом PHP / Zend и т. Д.), Чтобы всегда пропустить определенную функцию (в данном случае мою функцию автозагрузки) при отладке?

Ответы [ 3 ]

6 голосов
/ 08 декабря 2011

В eclipse с pdt в настройках: PHP -> Debug -> Step Filtering, нажмите Add Filter, я добавил Autoloader.inc, и мне больше не нужно проходить его

См. step_filtering_preferences длябольше наглядных инструкций

1 голос
/ 22 марта 2018

Я знаю, что это старый вопрос, но я прибыл сюда из Google. В phpStorm вы можете игнорировать определенную функцию, добавив ее в:

Настройки> PHP> Отладка> Шаговые фильтры

с -> если это нестатический метод или :: если это статический

phpstorm preferences

1 голос
/ 27 октября 2011

Если вы пошагово проходите по своему коду, тогда вам действительно стоит подумать об использовании точек останова. Если вы установили точку останова в начале исследуемого блока кода, то вы можете использовать опцию «выполнить до точки останова», чтобы пропустить весь код, который выполняется до кода, который исследуется.

Если вы установите точку останова в начале конструктора класса, который вы хотите исследовать, или в начале метода, который вы хотите исследовать, если вы уверены, что инстанцирование объекта в порядке, то вы можете пропустить автозагрузчик.

Netbeans и Eclipse PDT поддерживают настройку точек останова, просто щелкнув номер строки кода, который вы хотите исследовать.

Кроме того, в отладчике также есть опция «step out», которая позволяет вам выпрыгнуть из функции / метода, в которую вы перешли, используя опцию «step in». Если вы оказались в автозагрузчике, просто выйдите из него.

...