A Adnil Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-04 #1 例如可以加断点,查看修改变量。。。。 查过以前的贴子,答案无非是新建一个tapplication程序,使用log文件记录等等。 所以想听听高手的声音。
X xkliu Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-05 #3 把 uses svrmgr 改为 uses forms,调试完成后再改回。
A Adnil Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-05 #4 开玩笑吧? 改成forms连编译都不能通过,如果调试? TService1 = class(TService) //TService的定义就在svrmgr中 private { Private declarations } public function GetServiceController: TServiceController; override; { Public declarations } end;
开玩笑吧? 改成forms连编译都不能通过,如果调试? TService1 = class(TService) //TService的定义就在svrmgr中 private { Private declarations } public function GetServiceController: TServiceController; override; { Public declarations } end;
U urus Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-05 #5 有一个很好的办法,不知适不适合你用。 其实在集成环境里直接run你的service程序是可以调试的,比如create事件中,在 服务控制器和delphi环境中运行的区别就在于,TService1.ServiceExecute(Sender: TService); 这个事件不会被运行,也就是这个线程系统不创建, 但你可以在create里另外创建一个线程,把你的代码写在里面,调试好后在放回TService1.ServiceExecutez中, 省事的话就干脆不用这个主线程。
有一个很好的办法,不知适不适合你用。 其实在集成环境里直接run你的service程序是可以调试的,比如create事件中,在 服务控制器和delphi环境中运行的区别就在于,TService1.ServiceExecute(Sender: TService); 这个事件不会被运行,也就是这个线程系统不创建, 但你可以在create里另外创建一个线程,把你的代码写在里面,调试好后在放回TService1.ServiceExecutez中, 省事的话就干脆不用这个主线程。
F freezing Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-05 #7 attach to process 就行了 调试服务程序就像调试一般程序一样的简单 什么断点阿那些随便设
E eMetal Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-16 #10 to :freezing 能具体说明一下 服务程序如何调试的吗 ? attach to process 不是汇编语句吗?
X xml1123 Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-27 #11 在服务类的OnStart事件中,在Started := True;前面,加入以下代码: sleep(10000); //休息十秒,好让你有反应时间 然后通过服务管理器启动服务,马上切换到Delphi中,点Run->Attach to process,选择和你的服务同名的那个程序(如果列表中没有,点一下左下角的“Show system process复选框”),点Attach,OK.
在服务类的OnStart事件中,在Started := True;前面,加入以下代码: sleep(10000); //休息十秒,好让你有反应时间 然后通过服务管理器启动服务,马上切换到Delphi中,点Run->Attach to process,选择和你的服务同名的那个程序(如果列表中没有,点一下左下角的“Show system process复选框”),点Attach,OK.