吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 281|回复: 0
上一主题 下一主题
收起左侧

[学习记录] RadStudio12.3在调试Create函数时怎么才能进入源码处(二)

[复制链接]
跳转到指定楼层
楼主
lrj2025kernel 发表于 2026-8-25 18:37 回帖奖励
本帖最后由 lrj2025kernel 于 2026-8-25 18:39 编辑

一、上个帖子的原因终于找到了,可以结帖了,链接如下:https://www.52pojie.cn/thread-2124551-1-1.html
二、Delphi编译链接相关的几个重要文件,如图

三、解决方法:将平台设置位x64,直接调试64位程序即可
原因分析:直接使用的是编译好的RTL的dcu文件,x32与x64有不同的实现策略,所以项目中无法设置,除非修改RTL中define的定义,重新编译RTL
四、x64位追踪记录
1、源代码

2、constructor TObject.Create;

3、function _ClassCreate(InstanceOrVMT: Pointer; Alloc: ShortInt): Pointer;

4、class function TObject.NewInstance: TObject;

5、function _GetMem(Size: NativeInt): Pointer;

6、function SysGetMem(Size: NativeInt): Pointer;此函数汇编实现(最后一张图)



7、层层返回到class function TObject.InitInstance(Instance: Pointer): TObject;

8、调用 FillChar(Instance^, InstanceSize, 0);跟踪至此
五、x32位简要追踪记录
1、function _ClassCreate(InstanceOrVMT: Pointer; Alloc: ShortInt): Pointer;

2、function _GetMem(Size: NativeInt): Pointer;

3、CALL    MemoryManager.GetMem

4、CALL    _FillChar

image.png (55.56 KB, 下载次数: 0)

7

7

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-8-26 17:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表