![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Gnusss |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 19.1.2005 Репутация: нет Всего: нет |
Привет всем.
Столкнулся с такой проблемой, надо написать сервис Windows, для этого я использую стандартные возможности Делфи класс TService и TServiceApplication. Но вот возникла проблема, ведь сервис это не обычное приложение и его запуск из под среды невозможен, поэтому я не могу производить его отладку и пошаговую трассировку. Люди подскажите, пожалуйста, как правильней и удобнее всего производить отладку сервисов. Заранее спасибо за ответ. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
||||
|
||||
| Gnusss |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 19.1.2005 Репутация: нет Всего: нет |
Snowy, как запустить или остановить сервис я знаю.
Суть моего вопроса в том, что в при написании сервиса у меня нет возможности, например, использовать BreakPoint или Trace into\over. Т.е нет возможности хоть как-то следить за выполнением кода из под Делфи. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Никак. Т.к. ты не запускаешь сервис - его запускает система.
Поэтому дельфи не в силах произвести его отладку. Стандартное правило - создай консольное приложение. Отладь. Потом создай сервис. Подключи к нему свои модули. То есть для отладки используй консольный вариант, а вариант-сервис для конечной версии. Добавлено @ 00:26 ЗЫ. Почитай раздел справки "Debugging service applications" |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
В данном случаи... Run->Attach to process... выбираеш его... давиш кнопку Attach -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Вот что есть в справке Delphi:
You can debug service applications by attaching to the service application process when it is already running (that is, by starting the service first, and then attaching to the debugger). To attach to the service application process, choose Run|Attach To Process, and select the service application in the resulting dialog. In some cases, this approach may fail, due to insufficient rights. If that happens, you can use the Service Control Manager to enable your service to work with the debugger: 1 First create a key called Image File Execution Options in the following registry location: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 2 Create a subkey with the same name as your service (for example, MYSERV.EXE). To this subkey, add a value of type REG_SZ, named Debugger. Use the full path to Delphi32.exe as the string value. 3 In the Services control panel applet, select your service, click Startup and check Allow Service to Interact with Desktop. On Windows NT systems, you can use another approach for debugging service applications. However, this approach can be tricky, because it requires short time intervals: 1 First, launch the application in the debugger. Wait a few seconds until it has finished loading. 2 Quickly start the service from the control panel or from the command line: start MyServ You must launch the service quickly (within 15-30 seconds of application startup) because the application will terminate if no service is launched. -------------------- |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
||||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |