捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
怎样调试delphi写的服务程序-com对象及hook程序(无下载)
关键字:delphi,调试大全
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:中级 完成时间:2010/4/23
发布者:dyydyy 发布时间:2010/4/24
编辑器:DELPHI7 语  种:简体中文
分 类:应用软件 下载浏览:537/18035
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
作者:呆呆(abingle.com)

我只会用delphi,也深感于delphi的灵气。

1.调试delphi 写的服务程序,有这么一个办法。原来每次都是用attach to process方法,很麻烦。并且按照服务线程的执行线路,可能会停不到想要的断点。笨办法是,在procedure TsvcFrm.ServiceExecute(Sender: TService);中想要下断的语句前加个人定胜天的sleep(20000),但实际上这种办法是主观臆测的。可行,没问题。记得大学时,俺一同学,也会修电视,他的办法是弄个小锤子,四处敲击,没两下就好了,和我用万用表的方法不一样,万用表他根本不会用。而且产生的效益比我的要乐观。毕业了,他回家开个网吧,也算是做IT,而我成了一位对编程颇有研究的IT业余人士,结果他收入还是比我高。日,下辈子,老子扛大炮去修劳力士去。回忆回忆过去,展望展望未来,无限感慨。上面的方法是可以的,如同锤子,仔细了解下服务程序的执行过程,你会发现,用下面的方法,就可以把服务程序当普通程序调试了。


program svcProxy;

uses
  SvcMgr,
  scvmain in ’scvmain.pas’ {svcFrm: TService};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TsvcFrm, svcFrm);
  svcFrm.ServiceExecute(nil);
  //Application.Run;
end.

如上修改dpr文件,就可以直接在serviceexecute过程中下断了,what a good idea. OK ,debug delphi services directly.

调试好了,修改回去,就行了,调试delphi服务程序就简单和多了。再也不用去附加到进程这种方法了。

2.调试com对象。

这种方法网上有介绍,带上。

打开 run->com/comexp.msc ,新建一应用程序(abcd)

并将你的com对象加入进来,找到abcd属性->高级,将调试勾上,拷下”D:\Delphi7\Bin\bordbg70.exe” C:\WINDOWS\system32\dllhost.exe /ProcessID:{53342392-DAAE-4542-AC55-2EDA5080671E}

在delphi调试中,宿主填上那个dllhost.exe ,参数填上/ProcessID:{53342392-DAAE-4542-AC55-2EDA5080671E},好了,现在就可以当作是普通程序来调试了。有的人说要把这个加上project|option|linker|Include TD32 debug info 和Include remote debug symbols打勾,无所谓,不勾也行,不行就勾。

加上一个小经验,com程序的类,不能在create中下断,看看源代码就知道了,要在init过程中下断哦。

3.上面其实就是怎样找宿主的问题,所以要灵活运用啊。举一例:上次做了一个hook程序,插入到别的进程中,怎么调试那个插入的dll文件呢?可以,没问题。比如说,用a.exe 插b.dll 到 c.exe中,我们让a.exe 中创建 c.exe,并将a.exe做为宿主,在b.dll.pas中下断,想断哪就断哪。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论9条
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表