Segítséget kérnék az php5-dbg használatához. Ubuntu alatt használnám a csomagot, elvileg gdb-vel mennie kéne. Az lenne a célom, hogy nyomkövessek egy (nem összeomló) php szkriptet ezzel. Itt: https://bugs.php.net/bugs-generating-backtrace.php már van valami infó, de ennek hatására: run /path/to/script.php csak ezt kapom: During startup program exited with code 126.
Végül az xdebug mellett döntöttem.
- 2514 megtekintés
Hozzászólások
(gdb) set args /path/to/script.php
(gdb) run /usr/bin/php
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Köszi! Sokat segítettél!
Nekem a run helyett a file paranccsal működött. Vagy a gdb --args /usr/bin/php -f path/to/script.php -vel. Feltettem a php5-5.3.5 forrását is, mert mindenáron abba akart belenézni a gdb (konkrétan ebbe: /build/buildd/php5-5.3.5/sapi/cli/php_cli.c). Lefut ugyan a php szkript, de alkalmas töréspontot nem bírok elhelyezni a szkriptemben. Próbálkozom a b execute-tal, ami ígéretes (mert minden PHP függvény ezen át értelmeződik), de egyelőre nem látok sokat...
- A hozzászóláshoz be kell jelentkezni
(gdb) break x.c:4
Breakpoint 1 at 0x400533: file x.c, line 4.
(gdb) run
Starting program: /root/x
Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
Try: zypper install -C "debuginfo(build-id)=92b202092ecebc1153ad4ad46ce75ecec8ee0e9a"
Missing separate debuginfo for /lib64/libc.so.6
Try: zypper install -C "debuginfo(build-id)=9d6085d89da1ef9e0dfad80e0a40af81f4a31731"
Breakpoint 1, main (argc=1, argv=0x7fffffffe4a8) at x.c:4
4 printf("Hello world!\n");
(gdb) step
Hello world!
5 }
(gdb)
0x00007ffff7a6f21d in __libc_start_main () from /lib64/libc.so.6
(gdb)
Single stepping until exit from function __libc_start_main,
which has no line number information.
[Inferior 1 (process 1450) exited with code 015]
(gdb)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Nem világos, hogy ebből a megjegyzésedből hogy profitálhatnék egy php program nyomkövetéséhez, a megfelelő töréspont beállításához. Esetleg az a "Single stepping until exit" volt a fő üzenete a bejegyzésednek?
- A hozzászóláshoz be kell jelentkezni
- En azt hittem, a php interpreterrel van bajod, foleg, hogy gdb-vel ugrottal neki. Egy sima php progit nem gdb-vel debuggolunk
- Mivel nem trivialis a gdb hasznalata, gondoltam leirom, hogy hogy nez ki egy torespont elhelyezese C kodban, raugras, kilepes.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Rendben, semmi gond.
Igazából az is príma lenne, ha ilyen mélységben sikerülne nyomkövetni egy PHP-s futást. Ha egyszer lesz szabadidőm, biztos kikísérletezem, hogy milyen töréspontokat kell megadnom, hogy mondjuk egy PHP-s kiíró ciklus minden egyes kiírásánál meg tudjam nézni, hogy merre hány méter. :-)
- A hozzászóláshoz be kell jelentkezni
inkább használd az xdebugot netbeans el, firefox xdebug kiegészítővel!
- A hozzászóláshoz be kell jelentkezni
Igen, ez tényleg kezes jószág, köszi az ötletet!
(Egyetlen dolgot hiányolok: hogy nem látok lehetőséget a felületen a feltételes töréspont megadására. De ez nem tragédia; akár a kódba is be lehet írni egy alkalmas feltételt és üres utasítást, amire töréspontot állíthatok...)
- A hozzászóláshoz be kell jelentkezni