X xeen Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-10 #21 设断点后,运行后ctrl+alt+c,你就看到编译后的汇编代码了。
P Passion Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-10 #22 apnl没创建的时候是随便一个值,当然不太可能通过它的值访问到TPanel的VMT,但就据此判断TPanel的VMT没有建立起来,则理由是不充分的。不知道李维在这里怎么解释它。 “因为属于同一Java类的所有对象都是共享一个VMT表格。”这句话比较奇怪,什么时候把Java扯进来了?
apnl没创建的时候是随便一个值,当然不太可能通过它的值访问到TPanel的VMT,但就据此判断TPanel的VMT没有建立起来,则理由是不充分的。不知道李维在这里怎么解释它。 “因为属于同一Java类的所有对象都是共享一个VMT表格。”这句话比较奇怪,什么时候把Java扯进来了?
S savetime Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-10 #23 to xeen, 我明白你的意思,你是说查看 CPU 窗口可以看到相同的调用 TSomeObject.Create 的汇 编代码。这里是一样的,但是这还不够,还不能肯定 TSomeObject.Create 中的工作内容 是一样的。比如有这种可能(只是假设):第一次调用 TSomeObject.Create 时,这个构造 函数内部可能设置了一个标志,表明已经调用过一次了,第二次再执行到此处时可能就不 一样了。(其实 TObject.Create 的内部过程还是蛮复杂的,调用了好几个代码段。) 当然这种情况的可能性极小,作为严谨的考虑,所以我只能说有 95% 的把握。 to Passion, 我也觉得突然冒出个 Java 比较有趣,可能是李维的思维比较发散的原因吧。呵呵。
to xeen, 我明白你的意思,你是说查看 CPU 窗口可以看到相同的调用 TSomeObject.Create 的汇 编代码。这里是一样的,但是这还不够,还不能肯定 TSomeObject.Create 中的工作内容 是一样的。比如有这种可能(只是假设):第一次调用 TSomeObject.Create 时,这个构造 函数内部可能设置了一个标志,表明已经调用过一次了,第二次再执行到此处时可能就不 一样了。(其实 TObject.Create 的内部过程还是蛮复杂的,调用了好几个代码段。) 当然这种情况的可能性极小,作为严谨的考虑,所以我只能说有 95% 的把握。 to Passion, 我也觉得突然冒出个 Java 比较有趣,可能是李维的思维比较发散的原因吧。呵呵。
Y yanyandt2 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-11 #24 程序载入内存会分为代码段和数据段 我想李维的意思是不是说的数据段?
L lich Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-11 #25 支持楼主的看法,凭直觉知道李维弄错了, vmt是建立在只读内存中的,是编译时就建立的 不可能后来建立的 哈哈,李维犯错误了, 给李维写个邮件吧
Q qince Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-11 #26 来自:qince, 时间:2004-2-10 12:37:00, ID:2445066 | 编辑 》类的vmt内容在第一个类对象创建时才会建立在内存中 我认为是没问题的呀, savetime兄终于拿到书了? 偶说错了,在此承认错误,VMT在编译期就决定了的。:)
来自:qince, 时间:2004-2-10 12:37:00, ID:2445066 | 编辑 》类的vmt内容在第一个类对象创建时才会建立在内存中 我认为是没问题的呀, savetime兄终于拿到书了? 偶说错了,在此承认错误,VMT在编译期就决定了的。:)