Вы можете использовать Debug Diag .
Выберите правило «Сбой» в диалоговом окне «Выбор типа правила», которое появляется при запуске Debug Diag.
Также взгляните на запись в блоге Тесс Феррандез. Отладка утечек памяти в собственной памяти с помощью Debug Diag 1.1 . (Хотя это не совсем то, что вы хотите, это никогда неправильно читать этот блог; -))
Символы отладки содержат информацию, которая «склеивает» исполняемый файл и код вместе. Формат Microsoft для символов отладки называется «база данных программы», и они обычно хранятся в файлах с расширением .pdb
.
Прямо сейчас вы получаете только «инструкцию по сборке на php5ts! Zend_mm_shutdown + f69». Приложение вызвало функцию zend_mm_shutdown
, которая экспортируется php5ts.dll, поэтому отладчик «знает» об этой функции независимо от того, есть символы отладки или нет. Но он не знает об исходном коде, который побудил компилятор построить машинную инструкцию по адресу zend_mm_shutdown + f69. Символы отладки содержат такую информацию, поэтому отладчик может показать вам исходный код и контекст.
Вы можете создавать символы отладки как для отладки, так и для сборки выпуска (для последних они обычно менее точны). Но я не нашел отладочный пакет для сборки wamp из php.
Для сборки php.net/win32 вы можете скачать пакеты отладки для их сборок выпуска с http://windows.php.net/download/. Или вы можете скачать исходный код и создать отладочную сборку самостоятельно. Но вы не можете смешивать исполняемый файл wamp с пакетами отладки php.net (т.е. вы не будете использовать для этого исполняемые файлы / библиотеки wamp).
И, возможно, просмотр исходного кода поможет вам понять, что происходит не так. Но почему-то я в этом сомневаюсь. Мм в zend_mm_shutdown
, вероятно, означает «управление памятью». Вероятно, он просто освобождает некоторые сегменты памяти, и некоторые из его структур данных неверны на данный момент . Это может быть какой-то другой код, перезаписывающий данные управления памятью Zend. Может быть крайний случай, который обрабатывается неправильно (что-то, что было освобождено, но не удалено из списка / структуры данных). Плохо то, что основная проблема может быть где угодно ... далеко, далеко от кода, который в конечном итоге вызывает нарушение прав доступа. И если zend_mm_shutdown
действительно является неким низкоуровневым управлением памятью, вероятно, осталось не так много информации о том, что изменило структуру данных (и почему).
Я предпочел бы сначала попробовать другую сборку php и посмотреть, возникнет ли проблема снова. Не должно быть трудно заменить файлы wamp сборкой php.net. Это может быть так же просто, как заменить папку php в вашей установке wamp, а затем посмотреть, нужно ли вам скопировать некоторые файлы в двоичную папку apache.
Но сначала сделайте копию / резервную копию полной папки wamp .... на всякий случай; -)