Delphi中DLL的跟踪调试 (转)

今天遇到的一问题主应用程序要调用Dll的入口点函数检测相关事件是否成功,其中有些达不到预想的效果,所以每次都要去修改dll然后再编译,很是麻烦,因此上网查有关调试技巧。得到以下答案,贴出给遇到此类问题的人共享之。 Delphi中DLL的跟踪调试 - cyber - cyber的博客
 
Delphi中DLL的跟踪调试 - cyber - cyber的博客
 上述方法都不可以在Dll中设置断点调试,发现这个可以。

原创  在delphi中调试dll的方式 收藏

传统上在delphi中调试dll的方式,在run|Parmeter…中设置Host Applicatin的参数。我想说明的是,这有二个问题。

1.  不能调试动态载入的dll

2.  静态载入的虽然能调试,但一次运行只调试一个,对其他的dll无法调试。

通过一段时间的摸索,终于找到了一个方法,很好的解决了上面的二个问题。而且不用设置Host Applicatin的参数。

举一动态载入的例子。

1、  delphi中新建一个工程组。在工程组在新建一个主程序和dll工程。并设置exedll输出目录为同一目录。

 

 1

2、分别编译dllMain.exeTestDll工程。

3、按运行按钮,运行主程序dllMain.exe

4、主程序中在加载动态链接库时设置断点,如图

 

 

2 

5、再按F8单步运行。

打开view|DebugWindows|Module ,在模块名中找到刚才加载进去的TestDll的名称,并双击。如图

 

 

3 

在下面的TreeView中找到TestDll工程的单元名并双击。

 

 

4 

delphi代码编辑器可以看到在TestDll工程文件中可以设置断点并且有效了。如图

 

5

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值