用DELPHI进行NT、2000、2003服务程序的调试

原创 2005年05月25日 09:21:00

NT服务程序的调试


----------摘自书籍Delphi 6 应用开发指南


 有两种途径可用于调试服务程序。第一种是在单独的类中定义服务的工作部分,并在一个单独的程序中对其进行调试。第二种是在服务运行时进行调试。第一种途径是个好主意;把负责服务工作的类添加到通常的程序是测试服务行为的最容易的方法,而且保持了与工作台测试的思想的一致性。
 我们使用第一种方法,在创建ServiceApp 和TestMailer(本书光盘上也有)这两个程序时进行测试。把同样的组件TIdMessage、TTimer 和TIdSTMP 添加到一个单独的程序,然后创建一个邮件发送器。当找到TestMailer 程序的缺陷后,所有的修改都更新到服务程序。创建工作台或测试程序是很容易的,但并不总是够用。
 第二种测试服务程序的途径是:安装并运行服务程序,然后将其附加到Delphi 中的运行进程。按照下列步骤,即可在运行服务时调试ServiceApp.exe 程序。
1. 在命令行运行Serviceapp.exe /INSTALL,安装服务程序。
2. 选择Start | Settings | Control Panel | Administrative Tools | Services,将运行Services 小应用程序。找到MyService,然后单击Start Service 工具栏按钮(这些步骤适用于Windows 2000;在Windows NT4.0 中的步骤几乎相同)。
3. 运行Delphi。
4. 装载ServiceApp.dpr 工程。
5. 在Delphi 中选择Run | Attach to Process 菜单项。
6. 在Attach to Process 对话框(如下图所示)中,选中Show System Processes 复选框。
 
7. 找到ServiceApp.exe,然后单击Attach 按钮。
8. 在Delphi 中,对工程源文件的OnExecute 事件方法设置断点,然后按键F9。
图B.3 Attach to Process 对话框可用于将Delphi 调试器附加到已运行的进程上;这对于调试服务程序是很有用的
 Delphi 将把调试器附加到运行的服务程序上,并打开CPU 对话框。除非您阅读汇编语言非常流畅,否则CPU 视图用处不大。但当服务程序运行到断点时,将停止在断点上并切换到Delphi 代码视图。在用户通过Delphi 获取对已运行服务的控制之后,即可像其他程序一样对服务进行步进和调试。
 注意:作为开发者,您应该对自己的PC 具有管理员权限。令人难以置信的是,有些组织信任开发者编写的代码但却不允许他们管理自己的PC。现在的经济形势仍然很好,找一份新工作吧。
 Delphi 帮助文档提到,如果权限不足,那么附加到服务进程可能会失败。当只要对PC 拥有管理员权限,附加到运行的服务进程总是工作正常。帮助主题“Debugging Services”包含了调试服务的第三种途径,其中涉及到修改注册表设置,您可以参考。

叶正盛
2005-05-22

delphi NT服务程序制作

NT 服务程序在系统启用后就开始工作了,即使没有用户登录。 用delphi做nt程序也很简单了,new-> other -> new页签 --> service Application. 便会生成一...

一个NT服务程序的Delphi代码

  • 2009年02月09日 17:28
  • 3KB
  • 下载

VC编程进行windows NT 服务程序的创建,删除,启动,停止 【NT Service编程】

// NTServiceStudy.cpp : 定义控制台应用程序的入口点。原文:http://blog.csdn.net/hurryboylqs/article/details/6024921 //...

NT Service服务程序框架源代码

  • 2006年02月23日 09:05
  • 29KB
  • 下载

delphi服务程序(service)的调试方法

delphi服务程序(service)的调试

Delphi调试服务程序的两种方法

近日在做服务项目中总结了两种delphi service调试方法,供大家借鉴: 一、编译指令 这种方法原理就是让服务以普通程序的方式来运行。 首先处理项目文件的单元头(RUNASAPP即为编译指...

NT服务程序

请先看一个例子: unit AppService; interface uses Windows, Messages, SysUtils, Classes, Graphics, C...

Delphi2010 服务程序修补 示例

  • 2012年11月24日 16:25
  • 1KB
  • 下载

Delphi2010中DataSnap高级技术(6)—加强服务程序对访问者的控制能力

Delphi2010中DataSnap高级技术(6)—加强服务程序对访问者的控制能力
  • shuaihj
  • shuaihj
  • 2011年01月11日 15:28
  • 2352
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用DELPHI进行NT、2000、2003服务程序的调试
举报原因:
原因补充:

(最多只允许输入30个字)