
.NET / Rotor 源码分析
文章平均质量分 80
ATField
目前在微软公司Common Language Runtime .NET Framework 的.NET Native Tool Chain Team工作,目前主要负责开发.NET Native相关技术
展开
-
.NET / Rotor 源码研究1 - Building Rotor
IntroductionShared Source CLI 2.0 (开发代号Rotor) 是微软.NET Framework 2.0的Shared Source实现版本。Shared Source是微软推出的源代码共享计划,可以在一定限制的情况下获得/使用源代码,详情可以参考Microsoft Shared Source Initiative主页:http://www.microsoft.com原创 2006-12-31 20:51:00 · 8663 阅读 · 3 评论 -
.NET / Rotor 源码研究2 – PAL Initialization / Termination
1. IntroductionPAL (Platform Adaptation Layer) 是Rotor得以在多种平台之间移植的关键所在。不同操作系统的API区别非常大,很难简单用#if/#else/#endif之类的语句进行条件编译来解决不同操作系统API之间互不兼容的问题,Rotor的解决方法是创建一个兼容层PAL,建立在PAL之上的程序无需关心面对的是何种操作系统,只需调用PA原创 2007-01-12 21:46:00 · 4608 阅读 · 1 评论 -
Rotor实现中用到的Macro(摘自Shared Source CLI Essentials)
General Macros_ASSERTEDefined in clr/src/inc/debugmacros.h, this is used to verify that an invariant holds true at runtime in debug-enabled builds.C_ASSERTCPP_ASSERTThese macros are used for转载 2007-03-16 22:33:00 · 2871 阅读 · 0 评论 -
.NET / Rotor源码研究3 – 调试Rotor托管代码的利器:WinDbg和SOS
WinDbg+SOS简介在动手进一步研究Rotor之前,我们需要首先解决一个问题:用什么调试工具最好? 很有可能你会说,这还不简单,直接用Visual Studio不就好了?一般情况下是的,只不过,在这个情况下,Visual Studio并非是最好的选择:1. CLR对代码的编译是动态进行的(其实还有可能是静态的,称之为Prejit或者NGEN,不过可惜Rotor对此不支持),也就原创 2007-05-12 18:08:00 · 4783 阅读 · 4 评论 -
.NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
准备工作在经过一番准备之后,现在我们可以开始正式使用WinDbg+SOS来调试托管代码了。如果你没有看过前两篇文章,那么请先阅读这两篇文章以对WinDbg+SOS有一个大致的了解。这两篇文章的链接在这里:.NET Rotor源码研究4 – 修改Rotor使其发送CLR Notification:http://blog.youkuaiyun.com/ATField/archive/2007/05/21/原创 2007-05-21 00:40:00 · 4083 阅读 · 0 评论 -
.NET / Rotor源码分析4 - 修改Rotor使其发送CLR Notification
在使用WinDbg + SOS正式跟踪Rotor的源代码研究.NET的实现之前,还有个问题需要解决:Rotor缺省并不会发出CLR Notification。CLR Notification是指CLR在运行的时候发出的一些通知,比如加载模块,代码被编译等等,这些通知对于调试Rotor / .NET以及SOS都非常重要。例如你可以设置调试器为一遇到CLR Notification便中断,在某些情况下原创 2007-05-21 00:07:00 · 4460 阅读 · 0 评论 -
.NET/Rotor源码研究1补遗 - 解决无法检测操作系统版本的错误
最近不少朋友反映在编译Rotor的时候出现无法检测操作系统版本的错误,具体现象为执行env.bat的时候报错: Could not get platform OS version原创 2007-10-21 20:46:00 · 5484 阅读 · 0 评论