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

皱皱爱青峰

皱皱爱青峰

2016-02-19 19:58

想要天天向上,就要懂得享受学习。图老师为大家推荐用DELPHI进行NT、2000、2003服务程序的调试,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

NT服务程序的调试


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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  
   有两种途径可用于调试服务程序。第一种是在单独的类中定义服务的工作部分,并在一个单独的程序中对其进行调试。第二种是在服务运行时进行调试。第一种途径是个好主意;把负责服务工作的类添加到通常的程序是测试服务行为的最容易的方法,而且保持了与工作台测试的思想的一致性。
   我们使用第一种方法,在创建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”包含了调试服务的第三种途径,其中涉及到修改注册表设置,您可以参考。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  

叶正盛
  2005-05-22

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
用DELPHI进行NT、2000、2003服务程序的调试

用Delphi编写Win2000服务程序

Delphi
用Delphi编写Win2000服务程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用Delphi创建服务程序

编程语言 网络编程
用Delphi创建服务程序

Delphi 异常处理与程序调试

编程语言 网络编程
Delphi 异常处理与程序调试

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用Delphi开发Web服务数据库程序

编程语言 网络编程
用Delphi开发Web服务数据库程序

用C#创建Windows(NT)服务

编程语言 网络编程
用C#创建Windows(NT)服务

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

预装Win8怎么开启Defender?

预装Win8怎么开启Defender?

编译原理的一个简单的枚举算法

编译原理的一个简单的枚举算法
下拉加载更多内容 ↓