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

初级教程之---delphi调试 一、准备调试       Delphi 在 IDE 内部集成了一个调试器,因而对程序的调试不用离开集成开发环境(IDE)就可以进行。该调试器能够控制程序的运行、监视程序的输出、检查和修改变量的值。 在调试程序之前,必须保证程序代码已经没有语法错误,还要正确设置一些选项。为此,需要使用【Project】菜单中的【Options】命令打开【Project  Options】对话框。 打开【C 阅读详情

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

delphi10.2 android开发调用 并控制二维码的例子 delphi10.2 android开发调用 并控二维码的例子,欢迎大家借鉴 立即下载

相关推荐

2025 年国人友好神刊盘点:20 本审稿快、分区高的 SCI 期刊,速抢发文先机!

科睿唯安最新发布的 2024 年影响因子(2025 年公布)显示,多本 TOP 期刊影响因子迎来大幅上涨!尤其是对国人友好的期刊,因审稿效率高、版面费亲民、国人发文占比超 40%,成为科研人员投稿热门。本文精选 20 本潜力神刊,涵盖Cell 子刊、顶流期刊、黑马期刊、性价比之王及新晋分区 TOP,附完整的影响因子、中科院分区、审稿周期、收稿方向攻略,助你抢占发文先机!

good_rrrrr的博客 5559

两种attach to process的方法

背景: 今天在做keepalive的实验,设法模拟keepalive不成功的场景,从而达到“ the local TCP will keep sending “Keep Alive” packet in an interval of KeepAliveInterval for TcpMaxDataRetransmissions times. ”的目的。但是通过: stop sqlserve...

weixin_33910434的博客 683

论文阅读------Exposure Fusion: A Simple and Practical Alternative to High Dynamic Range Photography

Mertens T, Kautz J, Van Reeth F. Exposure fusion: A simple and practical alternative to high dynamic range photography[C]//Computer graphics forum. Oxford, UK: Blackwell Publishing Ltd, 2009, 28(1): 161-171. 摘要 本文提出了一种将包围曝光的序列融合到高质量图像中的技术,而无需先转换为高动态范围(HD.

qq_25283239的博客 3395

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

delphi服务程序(service)的调试

全欣 的专栏 1万+

ZYNQ学习:PL端DDR3 读写测试

DDR SDRAM 的最大特点是双沿触发,即在时钟的上升沿和下降沿都能进行数据采集和发送,同样的工作时钟, DDR SDRAM 的读写速度可以比传统的 SDRAM 快一倍。本次实验使用的 DDR3 芯片是南亚的 NT5CC256M16ER-EKI, NT5CC256M16ER-EKI 的 bank 位宽为 3,行位宽为 15,列位宽为 10,所以它的地址大小等于 2^3*2^15*2^10(即 2^28=256M),数据位宽为 16bit,所以容量大小为 256M*16bit,也就是 512MByte。

shuidiQAQ的博客 3031

Lenovo 拯救者15ISK硬件升级实战:从内存到固态硬盘的全面优化

本文详细介绍了为联想拯救者15ISK笔记本电脑进行硬件升级的完整实战指南。通过评估升级可行性,指导如何挑选兼容的内存条与NVMe固态硬盘,并提供详细的拆机安装步骤与系统安装避坑技巧。升级后,笔记本的开机速度、软件加载及多任务处理能力获得飞跃式提升,让老旧设备重获新生。

weixin_29310631的博客 554

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

近日在做服务项目中总结了两种delphi service调试方法,供大家借鉴: 一、编译指令 这种方法原理就是让服务以普通程序的方式来运行。 首先处理项目文件的单元头(RUNASAPP即为编译指令的条件): ? 1 2 3 4 5 6 uses {$IFDEF RUNASAPP} Forms, {$ELSE} SvcMgr,

youxiazzz12的专栏 3245

02-基于ART-PI开发板创建USB CDC 虚拟串口设备

本例在ART-PI开发板上,基于RT-Thread 5.0,5虚拟了一个USB32 CDC串口设备。

arm_fan的专栏 1885

程序调试技巧 —— Attach to Process

按Ctrl+F5运行测试程序时,弹出一个错误窗口问你是要“终止、重试、忽略”,却没写出错的地方,让人很是郁闷。按F5进行调试,往往错误又不出现了。对于这种出现概率较少的bug,当在运行时弹出那个对话框时可以先别急着选择那三个选项,点击visual studio菜单栏的debug->Attach to Process,开始对进程调试。而此时一般进程正处于running状态,无法进行调试,点击debug

优快云 3523

【OpenClaw从入门到精通】命令行操作指南——TUI模式高效管理OpenClaw(2026避坑版)

本文将详细介绍OpenClaw的命令行操作,重点介绍TUI(Text User Interface)模式的高效使用方法,以及在实际使用中需要避免的常见陷阱。通过本文的学习,你将掌握OpenClaw命令行的精髓,提升工作效率。

一键难忘的博客 1691

利用蓝牙低功耗技术与位置数据,提升邮政运输工具及笼车追踪的效率

BLE 即蓝牙低功耗技术,与无线音箱或各类电脑配件所用的技术类似。正如其名,BLE 的特点是:在实现相近传输范围的同时,功耗显著更低。这让它能应用于对电池续航要求极高的场景。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 779

Delphi异常处理与调试

Delphi异常处理与调试 3.1 Delphi异常处理3.1.1 异常处理的意义所谓异常,可以理解为一种特殊的事件。当这种特殊的事件发生时,程序正常的执行流程将被打断。异常处理机制能够确保在发生异常的情况下应用程序不会中止运行,也不会丢失数据或资源。Object Pascal定义了大量的异常处理对象,使应用程序几乎能够处理所有的异常情况,并且对异常处理的语法作了简化。异常处理

haiou327’blog 9643

5、模型预测控制与分布式MPC控制结构解析

本文深入解析了模型预测控制(MPC)中的双模式预测控制及其稳定性理论,并探讨了分布式MPC的不同控制结构。内容涵盖MPC的基本公式化、性能指标、优化问题以及相关算法步骤,同时比较了集中式MPC、单层分布式MPC和分层分布式MPC的优缺点和适用场景。最后通过流程图和表格形式总结了双模式MPC的算法步骤和控制结构选择思路,并提供了操作建议,以帮助在实际工业系统中更好地应用MPC技术。

tea88的博客 168

VS调试技巧之----Attach to Process

<br />attach to process: 用于和进程绑定,方便调试。<br />你有没有这样的经历:按F5开始调试时,程序需要好长时间才能启动,比如可能需要加载比较大的文件或资源,这时候你可能需要等很长时间,而下次调试时又不得不等很长时间以待程序启动。其实这浪费了很多的时间。那有没有比较好的解决方法呢,有,就是VS提供的Attach to Proces 的功能。你只要把待调试的程序启动,然后把程序和源码attach一下就可以调试了,程序会在你在源码中设置的断点处停下来,当你调试完成后,只要不关闭你的

chengtg的专栏 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Delphi中DLL初始化和退出处理DLL_Process_Attach

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33895695的博客 1298

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

在Delphi中利用CreateRemoteThread远程注入例子

花了一个下午翻了MSDN,写了这个例子,为了安全,我用Delphi建了个什么也没有作的程序prjzzhost.exe,将它用作被注入的宿主进程.写了一个TestDll.Dll,里面只有一个Log函数,用来在文件Test.Txt中输出信息.最重要的一个程序project1.exe是用来注入的.测试环境: windows server 2003 + delphi 7.0程序很简单,高手就不用看了.废话

颜夕真的专栏 2441

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

DELPHI调试WINDOWS服务的一点心得(转)

DELPHI调试WINDOWS服务的一点心得(转)以下为转载,要说明的是有时要使用Build进行完全编译,否则只更改编译条件有的未修改的单元会不编译,造成问题。Delphi可以很轻松地开发windows服务,可是调试的时候,确有问题。服务能跑起来,可以把把调试器附加到服务的进程上。如果服务起不来呢?该如何调试呢?如果直接按F9,则服务只是被创建,还没有起动,就会自已退出去了。我

每天进步,每天分享 1899

Delphi中上指定进程(进程名)

procedure KillProcess(ExeName: string); const PROCESS_TERMINATE = $0001; //进程的PROCESS_TERMINATE访问权限 var ContinueLoop: Boolean; FSnapshotHandle: THandle; FProcessEntry32: TPr

靠别人不如靠自已。 1571

VS调试技巧之附加到进程

使用VS进行项目开发时,往往代码量很大而且编译容易出现错误或者编译时间过长的情况,或者一个解决方案有多个进程时,往往F5进入断点进行调试的话会非常消耗时间,但是我们又急着要进行调试某部分网页时可以VS的使用小技巧:  (以下展示的是一个解决方案下有多个Web网站进行快速调试 -- 遇到的问题是同一个解决方案下的另一个项目的接口因为需求需要更换) 选择VS下Debug(调试) -> attach

行云流水 6150
上一篇: 一元三次方程求根公式的解法
下一篇: 历代Windows操作系统大观
yzsind
博客等级 码龄25年 1925粉丝 328原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值