WinDbg探究CLR底层(1) - 应用程序域】的更多相关文章

一.什么是应用程序域 操作系统由于其稳定性与可靠性的要求,都会使用隔离层,来确保运行在某个隔离层内的代码不会对其他隔扇层的代码产生影响.如Windows通过进程来实现这种隔离机制,所能的可执行代码.数据.以及其它资源都被包含在进程中,系统其他进程通常不允许对它们进行访问.同理..NET应用程序同样也是被局限在进程内执行,但是.NET还进一步引入了另一种逻辑隔离层,也就是我们这里说的应用程序域(AppDomain). 二.如何查看应用程序域 下面用一个例子看看应用程序域: using System…
探究PHP底层 1.PHP是什么?   PHP 指的是我们从外面看到的一套完整的系统.这听起来有点糊涂,但其实并不复杂(PHP4 内部结构图).从功能上来分:我们可以分为三部分: 1. 解释器部分(Zend 以引擎),负责对输入代码的分析.翻译和执行: 2. 功能性部分(PHP功能函数以及扩展),负责具体实现语言的各种功能(比如它的函数等等): 3. 接口部分(SAPI),负责同 WEB 服务器的会话等功能. Zend包括了第一部分的全部和第二部分的局部,PHP内核 包括了第二部分的局部和第三部…
#1 CLR寄宿: 开发CLR时,Microsoft实际是将他实现成包含在一个dll中的COM服务器.Microsoft为CLR定义了一个标准的COM接口,并为该接口和COM服务器分配了GUID.安装.NET Framework时,代表CLR的COM服务器在Windows注册表中注册. 任何Windows应用程序都可以寄宿CLR,非托管宿主应该调用MetaHost.h文件中声明的CLRCreateInstance函数,该函数是在MSCoreEE.dll文件中实现的,该dll被称为"垫片"…
Win实际上将CLR作为一个COM服务器实现在一个DLL内,即为CLR定义了标准的COM接口,并为该接口和COM服务器分配一GUID,安装FrameWork时表示CLR的COM服务器被注册到注册表内.任何Win APP都可以寄宿CLR. 一个PC可安装多个版本的CLR,但是只有一个版本(最新版本)的MSCorEE.dll(判断创建何版本的CLR,而CLR COM服务器在MSCorwks.dll和MSCorSvr.dll内)(64位上有两个:For 32B/For 64B).且其知道如何找到以前版…
Contents 第1章CLR的执行模型... 4 1.1将源代码编译成托管代码模块... 4 1.2 将托管模块合并成程序集... 6 1.3加载公共语言运行时... 7 1.4执行程序集的代码... 8 1.5本地代码生成器:NGen.exe. 11 1.6 Framework类库... 11 1.7通用数据类型... 12 1.8公共语言规范... 12 第2章 生成.打包.部署和管理应用程序及类型... 13 2.1 .Net Framework部署目标... 13 2.2将类型生成到模…
之前看了<用WinDbg探索CLR世界>的一些列文章,发现SOS真的是一个非常好的调试.net的工具, 然后又惊喜的在http://blogs.msdn.com/b/mariohewardt/archive/2012/06/05/visual-studio-2012-and-windbg-integration.aspx 上看到原来windbg已经被集成 到VS2012的IDE中.本文主要讲解在VS2012中调用SOS的基本步骤 1 SOS是一个非托管的DLL,要使用SOS调试,首先需要打开本…
为了提升windows系统的稳定性与可靠性,windows通过进程来实现.所有的可执行代码.数据以及其他资源都被包含在进程中,不允许其他进程对它进行访问(除非有足够的权限).对于.NET应用程序,还进一步引入另一种隔离机制AppDomain.CLR加载的时候将创建三个AppDomain:系统应用程序域.共享应用程序域以及默认应用程序域.使用WinDbg.exe和!dumpdomain命令可以看到CLR创建的应用程序域如下:0:000> .loadby sos.dll clr0:000> !du…
目录 前言 什么是mscorwks 什么是SOS 什么是mscordacwks 上述错误是什么意思? 什么时候会出现该错误 如何修复错误 符号文件目录规则 相关资料 前言 在使用.net的生产环境时,有时候我们会碰到程序闪退或内存溢出等异常现象,这时就需要将程序导出dump文件进行分析.有时候服务器的环境和本地环境可能不一致,就会导致分析dump文件时出现异常. 正常情况下我们通过.loadby sos mscorwks加载默认路径下的mscorwks文件.加载成功后就可以同!threads或!…
标签:GC .Net C# CLR 前言 1. 基础概念明晰 * 1.1 公告语言运行时 * 1.2 托管模块 * 1.3 对象和类型 * 1.4 垃圾回收器 2. 垃圾回收模型 * 2.1 为什么需要垃圾回收 * 2.2 什么时候进行垃圾回收 * 2.3 垃圾回收时发生了什么 * 2.4 GC为我们解决了什么问题 * 2.5 代数的概念(Generation) * 2.6 使用System.GC类控制垃圾回收 * 2.7 非托管对象资源回收 3. 总结 4. 参考资料 前言 对象的生存周期和垃…
原文地址:http://www.cnblogs.com/jasenkin/archive/2010/10/20/asp-net-clr-relation.html CLR(COM服务器) CLR作为一个COM服务器实现在MSCorWks.dll文件中.安装.NET Framework时,表示CLR的COM服务器被注册到Windows的注册表里. MSCorEE.dll(垫片) MSCorEE.dll的职责是判断创建何种版本的CLR. 非托管应用程序宿主调用MSCorEE.dll(shim)中Co…