Как получить трассировку стека через api-вызов в xdebug? - PullRequest
2 голосов
/ 18 августа 2011

Мы используем xdebug , и трассировка работает как объявлено во время выполнения кода через ..

 function someGetUsersHelper() {
     xdebug_start_trace();
     [SOME CODE HERE]
     xdebug_stop_trace();
}

Однако она отслеживает только завернутую часть кодаесли страница / скрипт выполняется через загрузку полной страницы в браузере через запрос

index.php

Но трассировка не работает, когда мы вызываем функцию как вызов API через

index.php?api=getUsers

Даже если та же самая функция выполняется успешно, она не отслеживается.

В качестве дополнительного примечания: трассировка также работает, если функция вызывается из тестовых случаев phpunit или если мы установили xdebug.auto_trace= 1 в php.ini, но это оставляет нам очень длинный, испорченный файл трассировки.

Итак, вопрос такой:

  • Чтоможет быть проблема / причина для этого, и как мы можем получить желаемую четкую и краткую трассировку через вызов API?

Спасибо большое !!

1 Ответ

3 голосов
/ 19 августа 2011

Не могу сказать, почему не работает трассировка. Но вы можете попробовать это:

  1. Добавьте опцию xdebug.trace_enable_trigger=1 в вашу конфигурацию php
  2. Теперь вы можете запустить xdebug, добавив XDEBUG_TRACE в качестве параметра POST / GET или в файл cookie

Существует также плагин Firefox под названием Easy XDebug для установки флагов

...