xdebugtoolkit 0.1.3

Wicked

Новичок
xdebugtoolkit 0.1.3

Помаленьку мой проект обретает человеческие черты, так что его уже не так стыдно показывать :)

На данный момент проект xdebugtoolkit содержит:
  1. главную утилиту для построения деревьев вызовов из файлов xdebug'а - cg2dot
  2. вспомогательную утилиту для разбивания агрегированных файлов - cgsplit[/list=1]
    Утановка вместе с xdot заключается в следующем:
    1. Забираете из перозитория последний тег:
      Код:
      svn co http://xdebugtoolkit.googlecode.com/svn/tags/0.1.3/xdebugtoolkit/ xdebugtoolkit
    2. Забираете xdot
      Код:
      svn co http://jrfonseca.googlecode.com/svn/trunk/xdot/ xdot
    3. Устанавливаете требуемые для xdot компоненты:
      Код:
      apt-get install python-gtk2 graphviz
      [/list=1]для примера можно сразу запустить:
      Код:
      xdebugtoolkit/cg2dot.py -t0 xdebugtoolkit/fixtures/2.php.cg | xdot/xdot.py -
      Надеюсь, на чистой машине все сработает. Если не сработает, присылайте, пожалуйста, тексты ошибок (для этого может потребоваться запускать cg2dot.py и xdot не через pipe, а по отдельности c промежуточной записью в файл и чтением из него).
      Мне удавалось запускать эту связку и на винде, но не обошлось без танцев с бубном по поиску нужных версий всяких pycairo, pygtk, и т.д.

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

grigori

( ͡° ͜ʖ ͡°)
Команда форума
прикольно
а как научиться работать с xdebug?

а еще сегодня PHP 5.2.10 зарелизили, но интереса в этом мало - все ждем 5.3
 

Wicked

Новичок
а как научиться работать с xdebug?
там много ума не надо :)
устанавливаешь xdebug (у меня в убунте: apt-get install php5-xdebug) и читаешь http://www.xdebug.org/docs/profiler
вкратце, у меня настройки такие:
Код:
wicked@wnote:~$ cat /etc/php5/conf.d/xdebug.ini
zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so
xdebug.profiler_enable=1
xdebug.profiler_output_dir=/tmp/xdebug
xdebug.profiler_output_name=%u.cg
 

fixxxer

К.О.
Партнер клуба
ох. иксы, gtk...
Wicked, извиняюсь конечно за природную лень, но там какая-то интерактивность (кроме зума и скролла) предусматриватся? а то подумалось, что для такого можно было бы просто генерить svg прям на сервере:)
 

Wicked

Новичок
fixxxer
там какая-то интерактивность (кроме зума и скролла) предусматриватся?
нет.
чтобы, например, при просмотре менять максимальную глубину показываемых вызовов, пришлось бы перегенерить dot-файл, и заново прогонять его через dot (утилитку из graphviz), чтобы он придал графу геометрию в конкретных цифрах. Т.е., теоретически, такое можно сделать, но откликаться на изменение структуры графа оно будет не очень оперативно.

я думаю помаленьку над тем, чтобы сделать свою xdot-подобную тулзу, которая учитывала бы специфику моих деревьев и работала с ними действительно интерактивно, но пока руки не доходят

что для такого можно было бы просто генерить svg прям на сервере
легко:
Код:
xdebugtoolkit/cg2dot.py -t0 xdebugtoolkit/fixtures/2.php.cg | dot -Tsvg -osome.svg
для этого потребуется только пакет graphviz

-~{}~ 02.02.10 20:49:

в 0.1.4 добавил тулзу xdot-pygoocanvas.py (генно-модифицированная xdot), которая работает, используя нормальный canvas вместо велосипеда. Из-за этого летально выросла производительность на обширных графах. Тулза еще не очень взрослая, так что возможны баги.
 
Сверху