Отладка Delphi ISAPI Dll на Apache - PullRequest
0 голосов
/ 16 июля 2009

Я столкнулся с ситуацией, когда часто при отладке ISAPI Dll (TWebModule), работающей под Apache, я получаю ошибки. Заголовок сообщения об ошибке называется «Уведомление об ошибке отладчика» и содержится в сообщении, среди прочего: "c: \ program files \ Apache \ bin \ httpd.exe, ошибка с сообщением ......."

Когда это происходит, появляется окно процессора, и мне приходится нажимать кнопку «ОК» в сообщении об ошибке. Возможно, мне придется сделать это 3-5 раз, прежде чем продолжить выполнение программы.

Это происходит на моем ноутбуке. У меня есть рабочий стол с точно такой же конфигурацией (насколько я знаю), и у меня нет этой проблемы. Обе операционные системы XP. Очевидно, что где-то есть какой-то установочный или устаревший файл.

Кроме того, я заметил, что при первом запуске моего веб-сайта, когда Apache не находится в среде отладки, похоже, нет этой проблемы. (т.е. запустите apache в сервисах, запустите мое веб-приложение, остановите сервис, а затем отладьте его в среде Delphi).

Есть идеи ???

Ответы [ 3 ]

0 голосов
/ 17 июля 2009

Чтобы избежать этой и других проблем, я начал xxm . Это альтернатива TWebModule, для работы с IIS используется отдельная оболочка, но есть также оболочка Apache, FireFox и IE! Он также использует смешанный HTML-Delphi-source, а обертки режима разработки выполняют синтаксический анализ и автоматическую компиляцию для создания среды, подобной веб-сценарию.

Также плагин InternetExplorer прекрасно работает в отладчике (с iexplore.exe в качестве хост-приложения).

0 голосов
/ 17 июля 2009

Код ошибки 0xC0000008 - Status_Invalid_Handle. Это может быть сгенерировано CloseHandle, например, при попытке закрыть дескриптор, который либо никогда не был открыт, либо уже был закрыт. Ошибка может не возникать, когда вы работаете вне отладчика, потому что API не выдаст исключение , если не будет отлажено.

Если вы получаете это исключение в коде, к которому у отладчика нет доступа, вместо этого отладчик отобразит окно ЦП. Посмотрите на стек вызовов, чтобы найти место в вашем коде, наиболее близкое к тому, откуда пришло исключение.

Также возможно, что это не встречается в вашем коде вообще. Попробуйте выполнить ту же процедуру отладки без установленного модуля. Вы все еще получаете ошибки?

0 голосов
/ 16 июля 2009

Хотя это не дает прямого ответа на то, как отлаживать с помощью Apache, другой альтернативный метод отладки, который хорошо работает, - это использование idDebugger (в нижней части этой страницы). Это позволит вам отлаживать ISAPI DLL напрямую из IDE без необходимости запускать / останавливать службы. Теперь я никогда не разрабатываю ISAPI DLL без него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...