Я хотел бы использовать GDB для прохождения кода C ++, составляющего расширение php.so Apache. Я хочу видеть, что делает PHP во время выполнения приложения PHP. Я бы предпочел использовать IDE, например Netbeans или Eclipse, в системе LAMP.
Отладка интерпретатора PHP с помощью GDB
Ответы (2)
- Вы хотите получить отладочную сборку
mod_php
(с символами) или создать свой собственный (configure --enable-debug
) - Вы должны настроить Apache так, чтобы всегда оставался активным ровно один экземпляр рабочего процесса (который будет экземпляром, который вы отлаживаете), то есть установите _ 3_,
MaxSpareServers
иStartServers
все к 1 . Также убедитесь, что для всех параметров тайм-аута установлено достаточно много значений. - Используйте
gdb
или любой графический интерфейс дляgdb
(например, _ 8_ или 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