PHP Eclipse / DBG

Warnung

Alles hier beschrieben funktioniert im Prinzip - aber in der Praxis... Hält an einem Breakpoint: meistens, manchmal... Beim Aufruf einer Funktion in einer anderen Datei hängt er... usw.

Erstellt: 07/2010| Geändert: 10/2015

Debugger unter OSX einrichten

Compilieren

Erstmal für PHP5

# Download dbg-2.15.5 module sources

cd /usr/local/src/
wget dd.cron.ru/dbg/download.php
tar xzf dbg-2.15.5.tar.gz
cd dbg-2.15.5

Editieren von deferphpize:

phpize=${phpize:-"/usr/local/bin/phpize"}
=> (PHP5) phpize=${phpize:-"/usr/local/php5/bin/phpize"}

Linux|SunOS) => Linux|SunOS|Darwin)
Linux) => Linux|Darwin)

Aufrufen von ./deferphpize: Nun wird mit dem richtigen PHP compiliert (usr/local/php5/bin/)
=> dbg.so wird in modules angelegt

Das Script gibt u.a. folgende Informationen aus:

Zend Module Api No: 20060613
checking for PHP extension directory... /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613

Konfigurieren

Nachsehen in /usr/local/php5/php.d/10-extension_dir.ini nach dem Extension Dir ergibt:

/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613

dbg.so dorthinkopieren und umbenennen in dbg-2.15.5.so (optional)

Php.ini

Folgendes eintragen:

[debugger]
extension=dbg-2.15.5.so
debugger.enabled=on
debugger.profiler_enabled=on
debugger.hosts_allow=127.0.0.1
debugger.hosts_deny=ALL
debugger.ports=7869, 10000/16

(Php4)

Editieren von deferphpize:

=> (PHP4) phpize=${phpize:-"/usr/bin/phpize"}

Editieren von /etc/php.ini

=> extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20020429"

Ich habe dies nicht weiter durchgeführt, bin bei php5 geblieben

Erstellt: 07/2010| Geändert: 10/2015

Debugging von Extensions

Aktualisieren von Phpeclipse

erstens: Ich habe die "update location" für Phpeclipse geändert  (Help-> Software Versions-> Find and Install-> Search for new features->Edit):

Von: phpeclipse.sourceforge.net/update/releases
Zu: update.phpeclipse.net/update/nightly

Ich habe die Version aktualiiert auf 1.2.0.200707080504NGT

Symbolische Links!!!

Ich habe herausgefunden dass der Debugger ein Problem hat mit symbolischen Links - also habe ich das geändert in meiner Entwicklungsumgebung.

Mindestens sollte man die index.php ersetzen um Extensions zu debuggen.

mv index.php index.php.parked
mv typo3_src typo3_src.parked
mv t3lib t3lib.parked
mv typo3 typo3.parked

cp /<your typo source directory>/typo3_src.4.1.1 ./typo3_src

mv typo3_src/index.php ./index.php
mv typo3_src/typo3 ./typo3
mv typo3_src/t3lib ./t3lib

Erstellt: 07/2010| Geändert: 10/2015

Nicht vergessen

Cache

Nicht vergessen mit der Option &no_cache=1 aufzurufen.

Dbg

Nicht vergessen mit der Option &DBGSESSID=1@localhost:10001 aufzurufen (Wird in Cookie gespeichert nachdem ersten Aufruf).

Eine Seite pro Debug

Nun denn: Man muss die Debug Session nach jedem Seitenaufruf erneut starten. Aber besser als gar kein Debugging.

Erstellt: 07/2010| Geändert: 10/2015