Vajon melyik olvasható könnyebben a következő kódrészletek közül?
$exp = sprintf("/^([0-9][ ]*){%d,%d}$/", $cfg['input']['phone']['min'], $cfg['input']['phone']['max']); if (preg_match($exp, $request_value) !== 1) { ... }
if (preg_match("/^([0-9][ ]*){".$cfg['input']['phone']['min'].",".$cfg['input']['phone']['max']."}$/",$request_value) !== 1) { ... }
Miután közel fél napot vacakoltam egy programmal, s rájöttem, hogy csak egy break hiányzik az egyik switch-case-ből úgy döntöttem mégis nekiállok, hogy felrakjak egy debuggert a phphez.
Először a DBG-vel találkoztam, van hozzá telepítési útmutató is. Elég sokáig sikerült ezzel is elszórakozni, mert nem igazán értettem elsőre a működés mikéntjét.
Debian alatt szükséges még hozzá néhány csomag a telepített php4-en kívül:
apt-get install php4-dev automake1.4 ddd libreadline5-dev libtool1.4
Ezután jöhet a harmadik pont. Letölteni a forrásokat, kitömöríteni, majd a dbg-2.11.32 könyvtáron belül a ./deferphpize szkriptet futtatni. Nálam a futtatáshoz még az említett fájl harmadik sorának módosítására is szükség volt, amely végül ilyen lett:
phpize=${phpize:-"/usr/bin/phpize"}
Ezután a modules könyvtárban létrejött dbg.so-t másoltam át a /usr/lib/php4/20020429 könyvtárba a többi .so fájl mellé. A modul betöltéséhez a /etc/php4/apache/php.ini-be a következő bejegyzéseket kell felveni:
extension=dbg.so [debugger] debugger.enabled = true debugger.profiler_enabled = true debugger.JIT_host = 127.0.0.1 debugger.JIT_port = 7869
Apache újraindítás is szükséges. Ha mindent jól csináltál, akkor a phpinfo() kiementében fel kell tünnie a with DBG v2.11.30, (C) 2000,2004 by Dmitri Dmitrienko vagy hasonló sornak, illetve lesz egy dbg nevű táblázat is.
Ezután szükséges a dbg_client lefordítása és feltelepítése is. Ez a szokásos ./configure && make && make install parancsokkal elvégezhető. Ha ez megvan, akkor már neki is lehet fogni a hibakeresésnek.
$ dbg-cli --port=7869 DBG php debugger, version 2.11.32, Copyright 2001, 2005, Dmitri Dmitrienko, www.nusphere.com dbg>
Ezután a file paranccsal betölthetőek a php fájlok. A hibakereséshez a listen parancsot kell kiadni, amely most a 7869-es porton fog figyelni:
dbg>file index.php Reading symbols from index.php...done. dbg>listen Waiting for debug session (press Ctrl-C to stop)... Starting program: `index.php' /var/www/index.php:18 dbg>
Ide csatlakozik majd a php, ha a következő módon hívod meg a debugolandó programot:
http://localhost/index.php?DBGSESSID=0@clienthost:7869
Itt már használhatók az olyan parancsok, mint a step, run, next. Ezekről a help ad bővebb információt. Nálam a break nem nagyon akar működni.
DDD-vel is használható, kicsit kellemesebb grafikus felületet nyújtva, bár nálam az UTF-8 karakterekkel voltak problémái. Ekkor így kell indítani:
ddd --debugger dbg-cli --port=7869
Legutóbbi hozzászólások
9 év 12 hét
10 év 1 hét
10 év 5 hét
10 év 23 hét
11 év 25 hét
11 év 30 hét
11 év 31 hét
11 év 32 hét
11 év 42 hét
12 év 12 hét