Бих искал да използвам GDB, за да премина през C++ кода, който съставлява разширението php.so Apache. Искам да видя какво прави PHP, докато изпълнява PHP приложение. За предпочитане бих използвал IDE като Netbeans или Eclipse на LAMP система.
Отстранете грешки в PHP интерпретатора с GDB
Отговори (2)
- Искате да се сдобиете с компилация за отстраняване на грешки на
mod_php
(със символи) или създайте свой собствен (configure --enable-debug
) - Трябва да конфигурирате вашия Apache винаги да поддържа точно един екземпляр на работния процес (който ще бъде екземплярът, който отстранявате грешки), тоест, задайте
MinSpareServers
,MaxSpareServers
иStartServers
всички до 1 Също така се уверете, че всички параметри за изчакване са щедро зададени - Използвайте
gdb
или всеки графичен интерфейс къмgdb
(катоddd
или Eclipse CDT), за да прикачите към един и само работен процес на Apache. Поставете точка на прекъсване в един от източниците на PHP и т.н. и продължете. - Насочете браузъра си към вашия уеб сървър и отворете PHP страница. Вашата точка на прекъсване ще се задейства. Ако искате да събудите дебъгера в определен момент от изпълнението на вашия PHP скрипт, генерирайте
SIGTRAP
от PHP иgdb
обикновено ще ви задължи.
Забавлявай се!
person
vladr
schedule
11.04.2010
Може би бихте могли да направите това на windows.
Въпреки това, най-добрият ви залог е да направите това на Unix кутия. Ще трябва да компилирате всичко с разрешено отстраняване на грешки. GDB ще се нуждае от достъп до тези директории за източник.
След това ще трябва да стартирате apache и след това да стартирате процеса.
За да си осигурите време за прикачване, докато натискате PHP/Apache с браузър, добавете извикване за заспиване в PHP скрипта. Ако ps, ще видите процеса в състояние на заспиване. Или можете просто да го накарате да запише идентификатора на своя процес във файл в tmp, преди да заспи.
person
drudru
schedule
11.04.2010