Почему XDebug игнорирует контрольные точки из NetBeans 6.8? - PullRequest
3 голосов
/ 03 апреля 2012

Я использую PHP 5.3.2, Apache 2.2.14 и xdebug 2.2.0rc1 на своем ноутбуке Ubuntu 10.04, и я пытаюсь настроить отладку на локальном хосте в Netbeans 6.8.

Моя проблема в том, чтоточки останова, которые я установил в Netbeans, игнорируются.В противном случае это, кажется, работает правильно.Например, я получаю красивые var_dumps, трассировки xdebug, удаленные журналы xdebug и могу также поставить флажок, чтобы он разрывался в первой строке скрипта PHP.

На основе других веб-сайтов и вопросов SO (например, SO1 , SO2 , SO3 ) Я проверил все следующее:

  • Что файл php.ini я редактирую
  • Этот xdebug загружается как zend_extension = / full / path / to / xdebug.so (не extension = xdebug.so)
  • Безопасность потоков отключена в PHP, и я используюбезопасная версия потока xdebug
  • о том, что путь к точкам останова является правильным в удаленном журнале xdebug (см. фрагмент кода под этим списком, пути в этом фрагменте и другие не показанные являются правильными)

    <- breakpoint_set -i 1014 -t line -s enabled -f file:///var/www/mockup/test.php -n 8 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1014" state="enabled" id="135610002"></response>
    
  • Ручные вызовы xdebug_break () работают

Я также пытался настроить путь к серверу и путь к проекту в Netbeansсвойства проекта, потому что кажется, что это может быть проблемой, но это не такlped.В настоящее время у меня есть путь к серверу /var/www/mockup и путь к проекту как /common/rsync/Dropbox/active-archives/code/Locus/mockup

Однако, /var/www/mockup в любом случае является символической ссылкой на более длинный путь, поэтому я даже не знаю, нужно ли это?Не работает, указываю ли я отображение пути или нет ...

Ответы [ 3 ]

2 голосов
/ 05 апреля 2012

Основываясь на вводе @ Derick, решение, которое работает:

  • Измените свойства проекта NetBean для копирования файлов из исходной папки на /var/www/Locus
  • Удалите все карты путей изЗапустите конфигурацию
  • Укажите мой браузер на localhost/Locus/

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

1 голос
/ 03 апреля 2012

Xdebug (через PHP) пока не поддерживает символические ссылки (существует проблема в http://bugs.xdebug.org/view.php?id=627). PHP / Xdebug всегда использует полностью развернутую ссылку, поэтому вам необходимо убедиться, что netbeans устанавливает точку останова, например:

breakpoint_set -i 1014 -t line -s enabled -f file:///common/rsync/Dropbox/active-archives/code/Locus/mockup/test.php

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

0 голосов
/ 23 июля 2013

Вот как я это исправил:

В моей локальной среде xampp на моем Mac я настроил vhost, который сопоставлен с каталогом вне корневого каталога apache (/ source / my_project). Мой проект в Net Beans был настроен на использование / source / my_project в качестве местоположения проекта. Поэтому у меня не было проблем с отображением URL, поскольку путь, который я использовал в виртуальном хосте Apache, не отличался от того, который я использовал в Net Beans. Или, возможно, Apache думал, что этот каталог отличается от Net Beans, в любом случае я не смог заставить работать отображение пути. Но когда я переместил / source / my_project в / apache / htdocs / my_project и использовал этот путь для источника проекта моего Net Beans и отобразил свой vhost в этот каталог, тогда отладчик работал. Постскриптум Я установил контроль версий в / source / my_project, поэтому я изменил my_project на символическую ссылку, и она все еще работала в subversion.

...