Co používáte na debugování?

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

Chci se zeptat, jak řešíte debugování PHP aplikací (krokování apod.). Případně, jaký máte operační systém. Zkoušel jsem namontovat do NetBeans xdebug, ale marně. Podle všeho to na 64b Vistách nejde.

Majkl578
Moderator | 1364
+
0
-

Na Debianu (Linux) používám PHP 5.3 s rozšířením XDebug a jako IDE mám Eclipse. A funguje to perfektně.

redhead
Člen | 1313
+
0
-

Mám Win a Netbeans s XDebugem a funguje krásně.

A máš vůbec 64-bit verzi XDebugu??

Ondřej Brejla
Člen | 746
+
0
-

Linux, NetBeans, Xdebug bez problémů.

redhead
Člen | 1313
+
0
-

no krásně.. to říct nemůžu, po nainstalování XDebugu mi někdy padá apache, někdy i při každym requestu, pak se to nějak ustálí a třeba další 3 hodiny nic.. ale dá se to

Majkl578
Moderator | 1364
+
0
-

redhead napsal(a):

…po nainstalování XDebugu mi někdy padá apache…

To se mi stává taky a zatím jsem nezjistil co to způsobuje. Každopádně je to rozšíření PHP, takže je možné vše.
Pro příklad: nedávno jsem kompiloval 5.3.2b1. Použil jsem totožný ./configure a výsledek byl kompletně jiný. 5.3.1 je TS, 5.3.2 je NTS. A aby toho nebylo málo, tak to i složilo běžící Nette aplikaci…

Editoval Majkl578 (14. 1. 2010 19:00)

nAS
Člen | 277
+
0
-

Na Win7 NetNeans a XDebug. Teď mi funguje dobře, ale několik let dělal přesně to co popisuješ – shazoval Apache. Nikdy dřív se mi to nepodařilo dobře vyřešit. Nyní používám WAMP server místo ručního sestavování, tak je to možná tím, nebo tím, že jsem změnil WinVista za Win7.

iguana007
Člen | 970
+
0
-

nAS napsal(a):

Na Win7 NetNeans a XDebug. Teď mi funguje dobře, ale několik let dělal přesně to co popisuješ – shazoval Apache. Nikdy dřív se mi to nepodařilo dobře vyřešit. Nyní používám WAMP server místo ručního sestavování, tak je to možná tím, nebo tím, že jsem změnil WinVista za Win7.

Nehodil by si mi zde prosím nějaký krátký popis jak krokování a debug celkově s NetBeans a XDebug na Win7 rozjet? Zkousel jsem postup na Neteans webu: http://netbeans.org/…windows.html
Ale bez výsledku … debug v IDE používám prvně v životě, tak nevím kam sáhnout.

Díky moc
igi

Editoval iguana007 (15. 1. 2010 17:56)

nAS
Člen | 277
+
0
-

Já už si moc přesně nepamatuju, jak jsem to rozcházel, ale v php.ini mám:

[XDebug]
zend_extension_ts="D:/wamp/bin/php/php5.2.11/ext/php_xdebug.dll"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_log="D:/wamp/logs/xdebug.log"

ten php_xdebug.dll nevím, jestli už byl ve WAMPu nebo jsem ho stahoval zvlášť, každopádně je to verze 2.0.5 a má 168017 bajtů. NetBeans jsou nastaveny standardně, tam jsem tuším nic neměnil.

Tomik
Nette Evangelist | 485
+
0
-

Windows (i 64bit). Nusphere PHPEd. Má to vlatní debugovací a krokovací rozšíření pro PHP. Nastavení na 5 kliků. Jede, vše ok. Apache nepadá. :)

Martin Mates
Člen | 179
+
0
-

Tak jsem zkoušel rozjet ten Xdebug celý den a pořád nic. Mám tušení že to na Vistách 64b NetBeans + Wamp/Xampp vůbec nejde. Psal jsem i na NetBeans fórum (http://forums.netbeans.org/viewtopic.php?…).

Problém je TUŠÍM v tom, že Wamp nainstaluje 32b verzi Apache, která potřebuje VC6 verzi Xdebugu. Verze VC6 pro PHP 5.3 existuje jen v 32b verzi (http://www.xdebug.org/download.php). Podle mého bych měl nainstalovat 64b verzi Xdebugu (jako je operační systém).

Zkoušel jsem samozřejmě i tu 32b verzi a ta nefunguje.

V php.ini mám následující:

zend_extension_ts="F:/Program Files/wamp2/bin/php/php5.3.0/ext/php_xdebug-2.0.5-5.3-vc6.dll"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000

Tohle je jediná konstalace, se kterou se nahraje Xdebug jako rozšíření do PHP. Bohužel to ale nefunguje. V Apache error logu je následující: PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0. Zkoušel jsem tedy dát pryč to ‚_ts‘ u zend_extension a žádná změna.

Budu rád za jakékoli Vaše zkušenosti a nápady, co zkusit. Díky!

Editoval Martin Mates (18. 1. 2010 18:29)

Panda
Člen | 569
+
0
-

64b verze je hloupost, 32b aplikace nemůže natáhnout 64b dll, i když by jsi jel na 64b OS. S xdebug 2.0.5 jsem měl taky kdysi potíže. Teď jdu vyzkoušet aktuální betu – 32b VC9. Pak dám vědět, jak to funguje.

//Doplnění: tak zatím mohu konstatovat minimálně to, že se Xdebug načte a debuggovat jde. Jak je to stabilní, to budu muset poreferovat až později.

Editoval Panda (18. 1. 2010 18:56)

iguana007
Člen | 970
+
0
-

A nemáš náhodou předtím v php.ini nezakomentovanou část týkající se Zend?

[Zend]
zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:

správně máš mít výše uvedený blok celý zakomentovaný jinak ti xdebug nepojede, je to ostatně uvedené přímo v poznámce u xdebug:

;; Only Zend OR (!) XDebug

Dej vědět, jestli pomohlo…

igi

Martin Mates
Člen | 179
+
0
-

iguana007 napsal(a):

A nemáš náhodou předtím v php.ini nezakomentovanou část týkající se Zend?

[Zend]
zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:

Díky. Tohle píšou už v tom návodu na NetBeans webu. V php.ini tento blok vůbec nemám. Jediný nezakomentovaný řádek obsahující zend je ten zend_extension_ts.

iguana007
Člen | 970
+
0
-

Zatím jsem to zkoušel jen na 32bit Vistách a tam mi to šlo … teď sedím u 64bit Win7, tak to zkusím, mělo by to být podobné jako 64bit Visty, tak dám vědět, jestli mi to šlo.

igi

Martin Mates
Člen | 179
+
0
-

iguana007 napsal(a):

Zatím jsem to zkoušel jen na 32bit Vistách a tam mi to šlo … teď sedím u 64bit Win7, tak to zkusím, mělo by to být podobné jako 64bit Visty, tak dám vědět, jestli mi to šlo.

igi

Díky moc! Budu se těšit.

iguana007
Člen | 970
+
0
-

Tak jsem s tím včera bojoval do 5ti do rána. Nejdříve jsem zkoušel XAMPP 1.7.1 … tam se mi xdebug depodařilo rozjet (Apache chybu nehlásil, ale NetBeans jej nedokázaly použít) … tak jsem si řekl, že zkusím step by step install Apache, PHP a MySQL … nejříve 64bit verzi a potom 32bit … v 64Bit se mi nepodařilo vůbec rozjet některé knihovny (např. curl a gettext) a v obou jsem nerozjel mod_rewrite … asi jsem něco dělal špatně v nastavení apache, ale nepřišel jsem na to. Taky jsem narazil na zajimavou věc a to, že mi nechodilo latest MySQL 5.1 – jediná verze co mi jela bylo MySQL 5.0.X … dneska to ještě zkusím znovu.

igi

Editoval iguana007 (19. 1. 2010 9:48)

iguana007
Člen | 970
+
0
-

Panda:
Nehodil by si mi tady prosim verze Apache, PHP a MySQL, ktere si instaloval na Win7 + httpd.conf? Myslim, ze si rikal ze ti to na Win7 bezi…

Diky

igi

Martin Mates
Člen | 179
+
0
-

Ono když se podíváš na stránkách Xamppu na Win32 compatibility list, tak se tam píše:

Windows comatibility list (win32), here tests for version 1.7.1

Windows 2000 (w2k): 		server test okay (but no xdebug support)
Windows Server 2003 R2: 	server test okay (but no xdebug support)
Windows XP Service Pack 2: 	server test okay
Windows XP Service Pack 3: 	server test okay
VISTA Ultimate: 		server test okay (but no xdebug support)

Takže s tím xdebugem to bude bída. Spíš bych vkládal naději v ten Wamp.

iguana007
Člen | 970
+
0
-

@Martin: no ja bych si nejradsi rozjel standalone baliky, uvidime co napise Panda a zkusim to. Pnadovi to preci jede a ma pokud si dobre pamatuju taky x64 system.

igi

iguana007
Člen | 970
+
0
-

Martin:

Me uz to asi bezi …
zkus si v httpd.conf zmenit radky, kde nacitas php na toto:

#Toto nechej jak je
    Action application/x-httpd-php "/php/php-cgi.exe"
#Tady si uprav cesty, podle toho kde mas instalnute PHP
    PHPINIDir "C:/php"
    LoadModule php5_module "C:/php/php5apache2_2.dll"

Z XDEBUG jsem si stahnul tuto verzi: http://xdebug.org/…-5.2-vc6.dll

A co se tyce Apache+PHP+MySQL, tak jsem to nainstaloval rucne. Mam verze: PHP 5.2.12 TS, Apache/2.2.14 (Win32) a MySQL 5.0.51a

igi

Martin Mates
Člen | 179
+
0
-

iguana007 napsal(a):

Martin:

Me uz to asi bezi …
zkus si v httpd.conf zmenit radky, kde nacitas php na toto:

#Toto nechej jak je
    Action application/x-httpd-php "/php/php-cgi.exe"
#Tady si uprav cesty, podle toho kde mas instalnute PHP
    PHPINIDir "C:/php"
    LoadModule php5_module "C:/php/php5apache2_2.dll"

Z XDEBUG jsem si stahnul tuto verzi: http://xdebug.org/…-5.2-vc6.dll

A co se tyce Apache+PHP+MySQL, tak jsem to nainstaloval rucne. Mam verze: PHP 5.2.12 TS, Apache/2.2.14 (Win32) a MySQL 5.0.51a

igi

Zkusím to, díky! Dám vědět.

Martin Mates
Člen | 179
+
0
-

2iguana:

Tak jsem zkusil do Wampu strčit PHP ve verzi 5.2.11 (5.2.12 plugin neexistuje) a zkusil jsem na to našroubovat tu verzi Xdebugu, co jsi vybral. Teď je to dost zvláštní, protože podle testovacího skriptu z NetBeans wiki ten Xdebug nefunguje (tady v tom bodě už jsem určitě byl).

Nicméně jsem tentokrát zkoušel v NetBeansech odkrokovat jednu aplikaci a to funguje. Občas slítne Apache (pokaždé když se pokusím o phpinfo). Už to tak nějak hala bala funguje. Zkusím to chvíli takto a kdyby to nešlo, nainstaluju to zvlášť všechno a uvidíme.

Martin Mates
Člen | 179
+
0
-

Tak jsem zkoušel nové verze Xdebug. Konkrétně Xdebug 2.1.0beta2 – 5.2 VC6 (32 bit) a 5.3 VC6 (32 bit). Konečně se objevila nová verze pro PHP 5.3 VC6 32bit, která dříve chyběla.

S PHP 5.3 a NetBeans 6.8 verze 5.3 VC6 (32 bit), Windows Vista 64b:

  • Extension se v pořádku načte
  • Při debugování v NetBeans se dole objeví optimistické netbeans-xdebug RUNNING
  • Nicméně program se nezastaví na žádném break pointu, takže to nejede

S PHP 5.2.11 a NetBeans 6.8 verze 5.2 VC6 (32 bit), Windows Vista 64b:

  • Extension se načte v pohodě
  • Debugování funguje ALE je to nějaké zacyklené, u proměnných se objevuje jejich název a typ asi stokrát a pořád to pribývá viz screenshot

Samozřejmě mluvím jen o Nette aplikaci. Ještě to zkusím na normálním skriptu. Nevíte někdo, co s tím?

Panda
Člen | 569
+
0
-

Zkusil bych poslední vývojové buildy: xdebug-latest.tgz. S cyklením to stále dělá nějaké psí kusy, ale je to použitelné a nejede to donekonečna.

Panda
Člen | 569
+
0
-

Jinak až teď jsem si přečetl, že tu byl požadavek na mojí konfiguraci webserveru.

Až donedávna jsem používal Apache z Apache Lounge a k tomu oficiální PHP VC9 x86 TS. Pokud jsem potřeboval, tak rozšíření od Pierra, Imagick od Mikko Koppanena.

Teď: Apache x64 z Blackdot.be a k tomu vlastním enterem zkompilované PHP + Xdebug + ImageMagick + Imagick – vše 64bit. Na požádání se mohu podělit…

Editoval Panda (27. 2. 2010 12:39)