Jak použít xdebug → krokování

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
RDPanek
Člen | 189
+
0
-

Ahoj, rád bych použil xdebug pro krokování. xdebug mám nastavený – v phpinfo je o něm zmínka, takže by měl fungovat. Nevím jak v NetBeans co kde spustit, aby se mi průchod krokoval – jak se tedy používá? Děkuji

redhead
Člen | 1313
+
0
-

NetBeans by měli jet sami o sobě, pokud sis nedal nějaký nestandardní port nebo něco. Možná budeš muset nastavit výchozí prohlížeč v nastavení a specifikovat index.php (kde začne debug session) v nastavení projektu. Pak stačí Debug → Debug Main Project (projekt musí být logický nastaven jako Main; pravým na projekt → Set as Main Project), měl by se otevřít prohlížeč (nový tab) s url na specifikovaný index.php s jedním parametrem v url o startování debug session. NetBeans by se měli chytit už sami (samozřejmě si někam dej breakpoint, ve výchozím nastavení ale myslím zastaví na první řádce index.php). Pak už můžeš chodit na jakékoliv jiné stránky v projektu (session nekončí ukončením skriptu). Krokovat můžeš tlačítkama nahoře co se objeví, nebo kl. zkratkama (já si je přenastavil)

Editoval redhead (4. 8. 2010 22:42)

RDPanek
Člen | 189
+
0
-

Tohle mám vše nastavené, umístěný breakpoint, nastavený projekt jako MainProject, ale Ctrl+F5 ⇒ otevře se prohlížeč s tou session za url, ale nikde se nic neobjeví – breakpoint jsem umístil zkušebně do basepresenter.

RDPanek
Člen | 189
+
0
-

http://ukaz.at/rf

ale nikde se to nijak neprojevi

newPOPE
Člen | 648
+
0
-

Gaudentius napsal(a):

http://ukaz.at/rf

ale nikde se to nijak neprojevi

  • Najskor by som si skontroloval ze mam xdebug korektne nahodeny v PHP, phpinfo(); uz som to par ludom rozbehaval a vacsinou to skapalo presne na tomto
  • pokial mas xampp tak este vypinam nejaky zend optimizer ci ako sa to vola… (tusim mi to dost casto padalo…)
  • inak NBeans by defaultne malo zastavit na 1om riadku applikacie
redhead
Člen | 1313
+
0
-

Podle mě by to mělo jet, jak vidět tak debug session si NetBeans nahodilo. Ten breakpoint se určitě vykonává v daném requestu?

ic
Člen | 430
+
0
-

Mě NetBeans spouštělo aplikaci do přehledu složek a ‚document_root‘ jsem si musel nakliknout ručně… z toho důvodu jsem musel přenést ty get parametry s kterýma prohlížeč startuje z výpisu složek na spuštěnou aplikaci a pak vše jelo správně.

Případně ještě tady byl ten pomocníček pro nalezení správné verze xdebug http://derickrethans.nl/…-wizard.html jestli náhodou není problém ve verzi

redhead
Člen | 1313
+
0
-

Si nastav index.php v document_root v nastavení projektu.

Panda
Člen | 569
+
0
-

Vůbec není potřeba nastavovat nějaký index.php. Mnohem pohodlnější je nastavit si NetBeans tak, aby se o prohlížeč vůbec nestaral a session pouštět přímo z webu. Napsal jsem na to drobnou pomůcku: https://github.com/…Debug-Helper. Stačí stáhnout a zaregistrovat do Nette debug baru:

\Nette\Debug::addPanel(new \PandaWeb\XDebugHelper());
// resp. Debug::addPanel(new XDebugHelper()); v PHP 5.2,
// pro PHP 5.2 stačí zakomentovat blok s namespace a use v XDebugHelper.php

Použití je pak následující:

  1. Nastavení Netbeans tak, aby neotevíral okno prohlížeče:
  2. Spustit debuggování v Netbeans, aby začal naslouchat pro příchozí spojení.
  3. Spustit session tlačítkem na Nette debug baru:
  4. Provést požadavek, tzn. refresh/klepnutí na AJAXový odkaz.

Nedoporučuji nechávat Xdebug session v prohlížeči zapnutou stále, protože pak se Xdebug snaží připojit k debuggovacímu klientu a pokud neběží, tak se vám zbytečně prodlužuje načítání stránky o 1s.

Podobný doplněk mohu udělat i pro profilování, ale tam je toho nastavování v php.ini trochu víc a vyznat se třeba ve WebGrindu může být pro začátečníky složité.

Patrik Votoček
Člen | 2221
+
0
-

I like it… (Do Addons s tím)

Ped
Člen | 64
+
0
-

Nevi nahodou nekdo o nejakem zpusobu jak krokovat zadarmo + bez java IDE?
(nechce se mi instalovat netbeans a javu jenom kvuli krokovani … xdebug rozchozeny mam, takze mi chybi jenom nejaky „front end“ k nemu)

Panda
Člen | 569
+
0
-

Nenapsal jsi svůj operační systém, ale na Windows by na to měl mít plugin Notepad++, na Linuxu by se jistě našel nějaký DBGp plugin pro VIM.