.NET/CLR-問題:每個對象都有一個指向方法表的指針作爲其第二個字段。 CLR(x86體系結構)版本4.0中此方法表的確切(精確!)佈局如何?如果您可以給我一個提示,在哪裏可以找到這些信息(以及有關域寬接口表佈局的類似信息),那將會很好。CLR中的方法表的確切佈局(版本4.0)
回答
文章「Drill Into .NET Framework Internals to See How the CLR Creates Runtime Objects」詳細描述了.Net中的方法。
從2005年5月開始,所以它不是特定於.Net 4,但我懷疑自此以後發生了什麼顯着變化。
沒有什麼理由假定.NET 4中沒有任何變化,只是MethodTable類*聲明*是SSCLI20版本中的2599行代碼,並且與CLR管道的其餘部分交織在一起。 clr/src/vm/methodtable.h源文件。在答案中期望確切的佈局不在表格中。 – 2012-03-03 17:48:28
我知道這個和類似的文章,我喜歡他們。但他們已經過時了。 (原理可能沒有改變,但細節有所改變。)我想跟蹤(用VS2020和SOS)從C#角度理解的接口方法調度的實現。純粹的好奇心! – Cord 2012-03-03 20:47:23
@Cord,你有沒有嘗試根據舊文章做到這一點?也許那些你感興趣的部分沒有改變。如果遇到問題,詢問新的具體問題可能會有所幫助。 – svick 2012-03-03 21:22:50
- 1. 佈局中按鈕的確切位置
- 2. 佈局正在改變的Android 4.0版本
- 3. CSS版本的表格頁面佈局
- 4. 使這種佈局的正確方法?
- 5. ASP.NET Web App使用錯誤的(2.0)CLR版本(而不是4.0)
- 6. 版本4.0中的Netty ChannelBuffer
- 7. CLR 2.0和CLR 4.0之間的區別
- 8. C#和CLR版本
- 9. 使用setContentView切換oncreate方法中的佈局。這可能嗎?
- 10. 如何在VS2010中選擇正確版本的CLR?
- 11. sbt/ivy版本系列無法解析但確切版本
- 12. 限制的方法visability到的一切,但相應的佈局
- 13. 無法獲得線性佈局的確切高度
- 14. 佈局API版本命名
- 15. 模仿UIStackView`填補IOS版本proportionally`佈局方法之前9.0
- 16. 版本控制中文件夾佈局的最佳做法?
- 17. 獲取確切的couchdb版本
- 18. 如何正確切換佈局?
- 19. 我的佈局不正確的佈局
- 20. Bootstrap:在HTML佈局中鏈接JavaScript文件的正確方法
- 21. 確定在CSS中做三列布局的方法
- 22. SQL CLR和.NET 4.0
- 23. 是否有快速切換相對佈局的方法?
- 24. 如何在Android中正確設置表格佈局的方向
- 25. 在BASH腳本中檢查Javac版本的正確方法
- 26. 表格與版式的頁面佈局
- 27. 確定程序集的框架(CLR)版本
- 28. C#語言版本和CLR
- 29. .Net 4.0是否包含新的CLR或保留2.0版
- 30. 爲CLR 2.0和4.0 CLR編程
爲什麼你需要知道這個?爲什麼它必須準確? – svick 2012-03-03 17:26:19
我知道COM竭盡全力描述這種類型的信息,但我不確定CLR的確如此。你能告訴我們你想如何使用這些信息嗎?可能會幫助我們爲您指出一個好的解決方案。 – JaredPar 2012-03-03 17:29:28
看看這個問題,答案和它們包含的鏈接。不一定是.NET 4.0的最新版本,但是一個好的開始。 http://stackoverflow.com/questions/5385653/object-layout-structure-in-net-using-disassembler – 2012-03-03 17:31:38