|
|
|
|
|
|
|
谈 WinDbg 之 AppDomain 的创建过程1 |
|
|
|
我们知道 CLR 中 Assembly 是在名为 AppDomain 的逻辑空间中被载入运行的,而 AppDomain 是介于操作系统层面进程和线程概念之间,同时具有线程的轻便和进程的封闭性,使用者可以通过 AppDomain.CreateDomain 创建新的 AppDomain。这样一来就出现了一个鸡生单还是蛋生鸡的问题,这个 AppDomain.CreateDomain 方法肯定是要在一个载入了 AppDomain 类型的 AppDomain 里面被调用的,但这个 AppDomain 又是谁调用 AppDomain.CreateDomain 方法创建的呢?呵呵 我们可以使用 WinDbg + SOS 的 EEHeap 命令,通过列出 CLR 执行引擎的堆信息,获取当前运行的 AppDomain 情况。我们以下面这段代码为例 以下内容为程序代码: // // AppDomain.cs // using System; public class EntryPoint { public static void Main(string[] args) { Console.Out.WriteLine("Hello AppDomain!"[img]/images/wink.gif[/img]; Console.In.ReadLine(); } } 这个典型的 CLR 程序的输出如下: 以下为引用: 0:003> !EEHeap succeeded页码:[1] [2] [3] [4] [5] [6] [7] [8] [9] 第1页、共9页 |
|
|
|
|
设为首页 | 加入收藏 | 广告服务 | 友情链接 | 版权申明
Copyriht 2007 - 2008 © 科普之友 All right reserved |