Jak debugować wtyczkę za pomocą Xdebug?


12

Byłem w stanie dość łatwo zainstalować i skonfigurować NetBeans 6.9.1 i Xdebug w moim lokalnym środowisku opartym na PHP 5.3.0 (XAMPP).

Mój problem jest teraz następujący: jeśli ustawię punkt przerwania w pliku index.php Wordpress lub innych podstawowych plikach PHP Wordpress, NetBeans poprawnie zatrzyma się w pożądanej pozycji. Jeśli zamiast tego ustawię punkt przerwania na pliku wtyczki, wyzwalanie wykonania kodu NetBeans nie kończy się na tym.

Czy wiesz, jak rozwiązać problem?

AKTUALIZACJA: Więcej informacji o tym, co próbuję debugować

Wtyczka nazywa się Vanilla Forums i ma następującą strukturę plików:

- plugins
  - vanilla-forums
    + assets
    + nbproject
    + templates
      admin.php
      embed.php
      functions.php
      hooks.php
      plugin.php
      sso.php
      widgets.php

Ustawiłem punkt przerwania wewnątrz funkcji o nazwie vf_validate_optionszdefiniowanej w functions.php. Jestem pewien, że ta funkcja jest wykonywana, ale NetBeans się tam nie psuje.


Jeśli umieścisz throw new Exception('die');oświadczenie po wierszu punktu przerwania, czy to przestanie (w tym sensie, że to zabije / zakończy twoje żądanie)?
hakre

@hakre Tak, zgłasza wyjątek (jestem pewien, że wykonywany jest kod, w którym ustawiony jest punkt przerwania)
Drake

1
@Drake: Czy ten kod jest wykonywany na stronie głównej, czy w wywołaniu Ajax? Uważam, że debuger Xdebug musi być włączony przy pomocy niektórych zmiennych GET lub POST, a następnie ustawia plik cookie, może nie jest włączony dla żądania Ajax?
Jan Fabry

1
Mam dokładnie ten sam problem i nadal nie mogę znaleźć rozwiązania! Używam php nusphere, ale próbowałem Eclipse też bez rezultatów! Jedynym plikiem, który xdebug zatrzymuje w punkcie przerwania, są pliki „core” WordPress. Żaden plik php motywu nie jest debugowalny! Daj mi znać, jeśli znajdziesz rozwiązanie, napisałem post na oficjalnym forum wordpress bez odpowiedzi :(
Kreker

1
Myślę, że Jan Fabry jest na rozwiązanie. Wolę używać wtyczki Firefox EasyXdebug , która doda XDEBUG_SESSION_STARTparametr zapytania do wszystkich żądań.
Jeff Stieler,

Odpowiedzi:




0

Cześć @Drake:

Głupie pytanie, wiem, ale czy „aktywowałeś” wtyczkę? Właśnie tam się potykam, gdy wtyczki nie są debugowane.


Tak, wtyczka jest aktywowana. To, co próbuję debugować, to wyzwalacz funkcji w menu utworzonym przez self plugin w obszarze administratora.
Drake

@Drake - Co to jest „wyzwalacz funkcji?” Czy możesz opublikować swój kod jako aktualizację pytania?
MikeSchinkel

0

nie ma sposobu na debugowanie plików wtyczki. Jedynym sposobem, w jaki znalazłem dla wordpress debugowania jest użycie nusphere phped, który niestety nie jest darmowy. Wydaje się, że jedyny może to zrobić, nie wiem dlaczego, ale spędzam bardzo dużo czasu zastanawiając się, jak debugować za pomocą netbeans i zaćmienia ... bez rezultatów!


-3

Cóż, skoro sam WordPress zapewnia WP_DEBUGi wp_die($msg)... dlaczego trzeba debugować za pomocą Xdebug? Chyba że budujesz wtyczkę za pomocą frameworka?


xdebug oferuje wiele narzędzi, których WP_DEBUG i dane wyjściowe nie mają - profilowanie i przechodzenie przez kod na początek ...
boisvert

Zgadzam się, w tym czasie miałem bardzo małą wiedzę na temat Xdebug.
adrian7
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.