Depuração de programas de serviço NT
------------ Trecho do livro Delphi 6 Guia de Desenvolvimento de Aplicativos
Existem duas maneiras de depurar um programa de serviço. O primeiro é definir a parte de trabalho do serviço em uma classe separada e depurar -a em um programa separado. O segundo tipo deve depurar quando o serviço está em execução. A primeira abordagem é uma boa ideia;
Utilizamos o primeiro método para testar ao criar dois programas: ServiceApp e Testmailer (também disponíveis no CD deste livro). Adicione os mesmos componentes TidMessage, TTimer e Tidstmp a um programa separado e crie um remetente de email. Quando o defeito do programa Testmailer é encontrado, todas as modificações são atualizadas para o programa de serviço. Criar uma bancada de trabalho ou testar um programa é fácil, mas nem sempre o suficiente.
A segunda maneira de testar um programa de serviço é instalar e executar o programa de serviço e, em seguida, anexá -lo ao processo de execução em Delphi. Siga estas etapas para depurar o programa ServiceApp.exe enquanto executa o serviço.
1. Execute o ServiceApp.exe /Instale na linha de comando para instalar o programa de serviço.
2. Localize o MyService e clique no botão Iniciar a barra de ferramentas de serviço (as etapas são aplicáveis ao Windows 2000; as etapas no Windows NT4.0 são quase as mesmas).
3. Execute Delphi.
4. Carregue o projeto ServiceApp.dpr.
5. Selecione o item de menu Anexe no processo em Delphi.
6. Na caixa de diálogo Anexar ao processo (conforme mostrado na figura abaixo), selecione o Show System Processa a caixa de seleção.
7. Localize o ServiceApp.exe e clique no botão Anexar.
8. Em Delphi, defina um ponto de interrupção no método de evento Onexecute do arquivo de origem do projeto e pressione F9.
Figura B.3 Anexar na caixa de diálogo Processo pode ser usado para anexar um depurador Delphi a um processo de execução;
A Delphi anexará o depurador ao programa de serviço em execução e abrirá a caixa de diálogo da CPU. A menos que você leia o idioma da montagem muito suavemente, as visualizações da CPU não são muito úteis. Mas quando o programa de serviço é executado para um ponto de interrupção, ele para no ponto de interrupção e muda para a visualização do código Delphi. Depois que o usuário obtém o controle do serviço em execução através da Delphi, o serviço pode ser escavado e depurado como outros programas.
Nota: Como desenvolvedor, você deve ter direitos de administrador no seu PC. Incrivelmente, algumas organizações confiam no código escrito pelos desenvolvedores, mas não permitem que eles gerenciem seus próprios PCs. A situação econômica atual ainda é boa, então encontre um novo emprego.
A documentação da Ajuda da Delphi menciona que, se as permissões forem insuficientes, a adesão ao processo de serviço poderá falhar. Quando você tem direitos de administrador no seu PC, o processo de serviço anexado sempre funciona bem. O tópico de ajuda "Serviços de depuração" contém uma terceira maneira de depurar serviços, que envolve a modificação das configurações do registro, às quais você pode se referir.
Ye Zhengsheng
2005-05-22