PC6下载站

分类分类

.Net 2.0内存对象布局详析及与1.1变化比较

关注+2010-02-14作者:

.Net 2.0内存对象布局详析及与1.1变化比较:

  首先找个小的C#的演示程序:

namespace CLRLayoutTest2._0
{
  class Program
  {
    static int TestStaticFields = 1221119;
    static object TestStaticObject = new object();
  
    static string TestStaticMethod()
    {
      return "Test Static Method";
    }
  
    static void Main(string[] args)
    {
      Program a = new Program();
      a.Test();
      System.Console.ReadLine();
    }
  
    public void Test()
    {
      int i = 2;
      object testObject = (object)i;
  
      System.Console.WriteLine(testObject.ToString());
      System.Console.WriteLine(TestStaticFields.ToString());
  
    }
  }
}

  好,设置好在.net framework 2.0的环境下给编译了。然后设置好windbg的调试环境,接着给attach上去:

0:000> !dso
OS Thread Id: 0x79c (0)
ESP/REG Object  Name
0012f3c4 013f37b8 Microsoft.Win32.SafeHandles.SafeFileHandle
0012f3d4 013f37b8 Microsoft.Win32.SafeHandles.SafeFileHandle
0012f408 013f3854 System.Byte[]
0012f40c 013f37cc System.IO.__ConsoleStream
0012f430 013f37fc System.IO.StreamReader
0012f434 013f37fc System.IO.StreamReader
0012f438 013f16e8 CLRLayoutTest2._0.Program
0012f448 013f37fc System.IO.StreamReader
0012f44c 013f3b70 System.IO.TextReader+SyncTextReader
0012f450 013f16e8 CLRLayoutTest2._0.Program
0012f460 013f3b70 System.IO.TextReader+SyncTextReader
0012f464 013f16e8 CLRLayoutTest2._0.Program
0012f46c 013f16e8 CLRLayoutTest2._0.Program
0012f478 013f16cc System.Object[]  (System.String[])
0012f534 013f16cc System.Object[]  (System.String[])
0012f6e0 013f16cc System.Object[]  (System.String[])
0012f708 013f16cc System.Object[]  (System.String[])

展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消