为什么我的DLL里运行时不能单步跟踪?

liqing7165 2006-09-20 08:09:45
晕!能运行,但是不能跟踪。
...全文
185 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdzeng 2006-09-20
  • 打赏
  • 举报
回复
要在Delphi里调试Dll,可以按照前面提的给Dll指定一个宿主程序
然后用Run运行宿主程序

如果你没有指定宿主程序,Delphi环境会提示错误,并要求你设置宿主程序
lijinghe1 2006-09-20
  • 打赏
  • 举报
回复
这个问题分很多种情况,还没解决的话吱一声
gw_delphi 2006-09-20
  • 打赏
  • 举报
回复
1.Run->Parameters->HostApplication 点Browse选择你调Dll的EXE程序
2.Ctrl + F9 编译
3.打好断点按F8 或 F7 跟踪

注:有时候编译过后需要关闭Delphi重新再打开 才能进断点
灯草拐杖 2006-09-20
  • 打赏
  • 举报
回复
我这里可以的,按F7
sdzeng 2006-09-20
  • 打赏
  • 举报
回复
dll能运行?
不知道你怎么运行的
postren 2006-09-20
  • 打赏
  • 举报
回复
dll的调试要在dll的工程中做老之那样的设置
在调用dll的工程中是不能调试dll中的内容的
老之 2006-09-20
  • 打赏
  • 举报
回复
在Run->Parameters->HostApplication里选好调用DLL的EXE文件,按F7就可以调试了。
调试程序可以帮助了解程序是怎样运行的。 1、如何快速地规范代码缩进格式 选中所需要规范的代码,按shift+F8 2、如何在Release状态下进行调试 Project->Setting…->Project Settings对话框,选择Release状态。“C/C++”标签页中的Category选General,Optimizations选Disable(Debug),Debug info选Program Database。在“Link”标签页中选中Generate debug info复选框。 注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效,和Debug版一样。 3、Release和Debug有什么不同。 Release版称为发行版,Debug版称为调试版。 Debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。 Release的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll),比如MFC42.DLL。这些DLL在安装Windows的候,已经配置,所以这些程序能够在没有安装Visual C++ 6.0的机器上运行。而Debug版本的exe链接了调试版本的MFC DLL文件,如MFC42D.DLL。在没有安装Visual C++6.0的机器上不能运行,因为缺MFC42D.DLL等,除非选择use static dll when link。 4、ASSERT和VERIFY有什么区别 ASSERT面的内容在Release版本中不编译,VERIFY面的内容仍然编译,但不再判断真假。所以后者更安全一点。 例如ASSERT(file.Open(strFileName)),一旦到了Release版本中,这一行就忽略了,file根本就不Open()了,而且没有任何出错的信息。如果用VERIFY()就不会有这个问题。 5、Workspace和Project之间是什么样的关系 每个Workspace可以包括几个project,但只有一个处于Active状态,各个project之间可以有依赖关系,在project的Setting…中可以设定,比如那个Active状态的project可以依赖于其他的提供其函数调用的静态库。 6、如何在非MFC程序中使用ClassWizard 在工程目录下新建一个空的.RC文件,然后加入到工程中就可以了。 7、如何设置断点 按F9在当前光标处增加一个断点和取消一个断点。 另外,在编辑状态下,按Ctrl+B组合键,弹出断点设置对话框。然后单击【Condition…】按钮弹出设置断点条件的对话框进行设置。 8、在编辑状态下发现成员变量或函数不能显示提示,如何打开显示功能 这似乎是目前这个Visual C++ 6.0版本的一个bug,可按如下步骤使其正常,如再出现,可如法炮制: (1)关闭Project,(2)删除“工程名.ncb”文件,(3)重新打开工程
TTProtect是专为软件开发者设计的保护软件不被非法修改或反编译的专业加密软件。
TTProtect是新一代软件保护工具,吸收众多保护工具的优点,并加入了独有的特色功能。
TTProtect使用了特别的反跟踪方法,使得对保护对象的非法调试非常困难,并且对保护代码进行全局优化、乱序和混淆,使得非法分析相当困难。
TTprotect有哪些功能和特点
调试器检测 能够检测出大部分调试器。
反调试器附加 防止应用程序在运行中被非法附加调试器。
调试寄存器解码 使得调试器无法使用硬件断点,也难以单步调试。
代码乱序和混淆 在保证了执行速度的基础上,又使得代码难以理解。
虚拟机模拟执行 有效保护关键代码不被察看、分析和修改。
高强度API加密 有效保护引用的api,并且使导入表难以恢复。
高强度入口加密 有效加密应用程序入口代码,防止被脱壳。
强化的代码抽取 抽取应用程序中的代码在壳中执行,使得应用程序难以脱壳执行。
资源保护 防止应用程序资源被非法修改。
多线程保护 在运行过程中保护应用程序的安全。
Dll嵌入 将Dll嵌入到应用程序中执行,防止Dll被非法调用,有效防止应用程序被脱壳。
段分割 将应用程序在内存中分成若干块执行,防止跟踪和脱壳。
代码段保护 防止在运行中,非法修改应用程序的代码段。
密码保护 必须输入密码才能执行应用程序。
TTProtect SDK 能使开发者自主保护特定代码。
反补区段 使补区段的代码无法正确执行。
API模拟执行 模拟执行一部分API,使导入表难以恢复。
防止文件补丁 防止应用程序文件被非法修改。
防止LPK补丁 有效防止LPK.dll的注入。
TTProtect是专为软件开发者设计的保护软件不被非法修改或反编译的专业加密软件。 TTProtect是新一代软件保护工具,吸收众多保护工具的优点,并加入了独有的特色功能。 TTProtect使用了特别的反跟踪方法,使得对保护对象的非法调试非常困难,并且对保护代码进行全局优化、乱序和混淆,使得非法分析相当困难。 TTprotect有哪些功能和特点 调试器检测 能够检测出大部分调试器。 反调试器附加 防止应用程序在运行中被非法附加调试器。 调试寄存器解码 使得调试器无法使用硬件断点,也难以单步调试。 代码乱序和混淆 在保证了执行速度的基础上,又使得代码难以理解。 虚拟机模拟执行 有效保护关键代码不被察看、分析和修改。 高强度API加密 有效保护引用的api,并且使导入表难以恢复。 高强度入口加密 有效加密应用程序入口代码,防止被脱壳。 强化的代码抽取 抽取应用程序中的代码在壳中执行,使得应用程序难以脱壳执行。 资源保护 防止应用程序资源被非法修改。 多线程保护 在运行过程中保护应用程序的安全。 Dll嵌入 将Dll嵌入到应用程序中执行,防止Dll被非法调用,有效防止应用程序被脱壳。 段分割 将应用程序在内存中分成若干块执行,防止跟踪和脱壳。 代码段保护 防止在运行中,非法修改应用程序的代码段。 密码保护 必须输入密码才能执行应用程序。 TTProtect SDK 能使开发者自主保护特定代码。 反补区段 使补区段的代码无法正确执行。 API模拟执行 模拟执行一部分API,使导入表难以恢复。 防止文件补丁 防止应用程序文件被非法修改。 防止LPK补丁 有效防止LPK.dll的注入。
什么是TTProtect? TTProtect是专为软件开发者设计的保护软件不被非法修改或反编译的专业加密软件。 TTProtect是新一代软件保护工具,吸收众多保护工具的优点,并加入了独有的特色功能。 TTProtect使用了特别的反跟踪方法,使得对保护对象的非法调试非常困难,并且对保护代码进行全局优化、乱序和混淆,使得非法分析相当困难。TTprotect有哪些功能和特点调试器检测 能够检测出大部分调试器。反调试器附加 防止应用程序在运行中被非法附加调试器。调试寄存器解码 使得调试器无法使用硬件断点,也难以单步调试。代码乱序和混淆 在保证了执行速度的基础上,又使得代码难以理解。虚拟机模拟执行 有效保护关键代码不被察看、分析和修改。高强度API加密 有效保护引用的api,并且使导入表难以恢复。高强度入口加密 有效加密应用程序入口代码,防止被脱壳。强化的代码抽取 抽取应用程序中的代码在壳中执行,使得应用程序难以脱壳执行。资源保护 防止应用程序资源被非法修改。多线程保护 在运行过程中保护应用程序的安全。Dll嵌入 将Dll嵌入到应用程序中执行,防止Dll被非法调用,有效防止应用程序被脱壳。段分割 将应用程序在内存中分成若干块执行,防止跟踪和脱壳。代码段保护 防止在运行中,非法修改应用程序的代码段。密码保护 必须输入密码才能执行应用程序。TTProtect SDK 能使开发者自主保护特定代码。反补区段 使补区段的代码无法正确执行。API模拟执行 模拟执行一部分API,使导入表难以恢复。防止文件补丁 防止应用程序文件被非法修改。防止LPK补丁 有效防止LPK.dll的注入。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧