现在的位置: 首页 > 综合 > 正文

Delphi中DLL的跟踪调试 (转)

2013年10月14日 ⁄ 综合 ⁄ 共 638字 ⁄ 字号 评论关闭

今天遇到的一问题主应用程序要调用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

抱歉!评论已关闭.