`
javawebsoa
  • 浏览: 405523 次
社区版块
存档分类
最新评论

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

 
阅读更多

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版 v1.0

    使用平台: WIN9X/NT/2000/XP 本软件目前仅供三线制(NONMODEM)串口调试之用,所有功能均置于界面上,一目了然,其义自明,这里仅对十六进制发送作一说明:十六进制发送:选中(CHECK)十六进制发送后,程序会自动...

    串口调试助手Delphi SPCOMM版V1.1(含源码)

    串口调试助手DELPHI SPCOMM V1.1 使用说明 本版本由sky的1.0修改而成,本来只是用来学习SPCOMM控件的,想不到经过一个晚上的努力,程序已经近于完善了。就将我的成果共享出来吧。由于改用COMPORT控件为SPCOMM控件...

    delphi网络应用

    WSAAsyncGetHostByName(使用WSAAsyncGetHostByName函数获取IP地址程序)-MultiIP(多IP情况的处理程序)-ReadIP and IP(关于IP地址和实际的地址的区别)2.GetNetMask(Windows NT&98系统中获取子网掩码)3....

    Delphi5开发人员指南

    4.5.7 使用框架进行应用程序结构 设计 102 4.6 一些项目管理的功能 103 4.6.1 在项目中添加资源 103 4.6.2 改变屏幕光标 105 4.6.3 避免创建一个窗体的多个实例 106 4.6.4 在DPR文件中增加代码 107 4.6.5 覆盖应用...

    ComAssistant串口通信Comport.rar_comport 16进制_delphi 串口助手_vc 34进制_悬浮

    本程序完全参照龚建伟《串口调试助手V2.2》制作而成,原软件是用VC编写的,我将它改用Delphi编写,作为我学习串口编程的一个例子与工具使用。 其中用到串口控件为ComPort,该控件为开源软件,各大网站均有下载,...

    delphi串口调式助手代码ComPort

    本程序完全参照龚建伟《串口调试助手V2.2》制作而成,原软件是用VC编写的,我将它改用Delphi编写,作为我学习串口编程的一个例子与工具使用。 其中用到串口控件为ComPort,该控件为开源软件,各大网站均有下载,...

    彩虹UDA软件狗工具带硬复制工具

    如果您仍旧使用原有的 DI/DJ/DK 驱动程序、模块及工具,在 DOS 、 Windows 9X/NT/2000 下对 RC-DL 只能做读操作,写操作将失败。如果您不想改动已发行的软件,而还要使用 RC-DL 型软件狗,只升级驱动程序也可以,但...

    BoundsChecker v6.5 (运行时错误检测工具)

    程序员在开发过程中可能会经常遇到这样的问题:调试时语法没有问题,代码也没有错误,但应用程序运行就是不正常甚至死机,其实这有可能...BoundsChecker支持的语言和主机平台:C++, DelphiWindows NT, Windows95/98/2000

    Vprotect V1.9.1.0专业版 一机一码 文件加密

    32 位 NT/2000/XP/2003/Vista/Win7/2008 Server 及其对应 64 位版本。 保护功能: 一键授权系统,无需写一行代码就可以给您的软件添加高安全性注册授权系统 原创虚拟机保护引擎(什么是虚拟机保护参考帮助文档) ...

    DLL.Designer.v2.3.Cracked

    DLL Designer是一个Delphi开发者的全功能发布工具,特别是对于设计适用于Windows 95, 98,NT/2000/XP动态链接库(DLL)的.它是一个理想的设计和开发DLL的工具,无论是概念设计还是最终的发布都能够被满足.DLL Designer...

    易语言程序免安装版下载

    即,新版支持库可被旧版易语言或易程序使用,旧版支持库也可被新版易语言或易程序使用(只是不支持静态编译)。  静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个...

    大恒图形卡cg300驱动

    在WindowsNT下,如果用户程序锁定了静态内存,然后应用程序异常退出,没有正常解锁,则可能出现系统崩溃现象。建议用户在该操作平台下调试应用程序时,不要非正常退出调试状态。 6. 提供VC、VB、BCB、Delphi开发...

    软件加密保护系统 VProtect Pro 2.1.0 中文免费版.zip

    32 位 NT/2000/XP/2003/Vista/Win7/2008 Server 及其对应 64 位版本。 保护功能: 一键授权系统,无需写一行代码就可以给您的软件添加高安全性注册授权系统 原创虚拟机保护引擎(什么是虚拟机保护参考帮助文档) ...

    汇编语言入门教程

    安装Turbo的Win32程序调试工具。 Examples [580K] 安装Borland TASM的例程。 Documentation Files [6K] 安装说明文档。 4.如何在Windows9x/NT下运行TASM32等32位工具 TASM5.0安装程序会在Windows程序管理器...

    微狗 MicroDog(加密狗)

    微处理器:内置单片机,并提供200字节掉电保持存储器,用特殊手段一次性写入程序,程序不可读出或改写,保证了微狗不可仿制多种加密算法及变化组合 抗共享:可对抗并口共享器 反跟踪:采用独创的数据交换随机噪声...

    Linux最早是Linus Torvalds在1991年开始设计开发

    Linux最早是Linus Torvalds在1991年开始设计开发的, 当时他正是赫尔辛基大学计算机系的学生,刚开始他是在Minix环境下写了一个处理多任务切换的程序,用他自己的话来描述这个程序,Minix是linux的父亲。1991年的夏季,...

    毕业设计(带论文)—试卷生成系统.rar

    试卷自动生成系统,此课题目的是在我们以往学习数据库的基础上,灵活运用数据库开发软件Delphi和结构化查询语言SQL2000,开发出能供教学使用的一套出试卷系统,以方便教学。应用所学的有关数据库的知识,更深入地...

    扫雷 V0.93 (完整代码)

    我期待我哪天对 Windows版的扫雷的突破,更期待你的飞跃,如果你能打开我的程序,我已经很高兴了,如果你能打开Delphi 调试、运行我的程序,我已经很高兴很高兴了,如果你还能够修改,升级,那我就很高兴很高兴很...

Global site tag (gtag.js) - Google Analytics