msdn上有一篇讲解如何用vs2008调试源码的文章:http://blogs.msdn.com/b/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx 今天在vs2010上试了下,发现其实也可以,关键设置二个地方:

然后换到Symbols

在Cache symbols in this directory这里选择一个本机目录(用于存放下载源代码pdb文件)

ok,已经成功一半了,为了更方便的一次性全部下载,你也可以到codeplex网站下载一个NetMassDownLoader的小工具,地址是 http://www.codeplex.com/NetMassDownloader/

该工具可以直接用命令行一次性下载所有微软开放的源代码:

D:\software\NetMassDownloder>NetMassDownloader.exe -d D:\software\NetMassDownloder\src

这样D:\software\NetMassDownloder\src目录中将会下载到很多文件,如下图:

然后随便创建一个WinForm应用,写几行代码:

using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication2
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){Text = "Debug me!";}private void button1_Click(object sender, EventArgs e){MessageBox.Show("Hello World!");}}
}

在Text="Debug me!"这里设置一个断点,运行

在Call Stack窗口中,选择System.Windows.Forms.dll,然后右击,选择Go To Source Code,然后就看到了传说中的Form.cs的源码

不过,微软只开放了一少部分代码,其它没有开放的代码,也可以利用Reflector工具来查看,比如象Array.Sort方法,网上都说微软内部使用的是快递排序算法,但是最好还是眼见为实,打开Reflector,定位到System,找到Array类,以及其中的Sort方法

点击右侧代码中的Sort方法

OK,右侧的代码中,已经能看到QuickSort这个方法了,继续

总算得见真身了!

后记:这篇文章主要是给想“深究.net源代码,但是又不知道如何下手”的朋友准备的,另外mono项目(可简单理解为.net在非windows平台上的实现)其中也有不少源码,其内部实现也值得一看。

转载于:https://www.cnblogs.com/yjmyzz/archive/2010/12/23/1914510.html

用VS2010调试微软开放的部分源码相关推荐

  1. 华为方舟编译器开源官网正式上线,并首次开放了框架源码!

    2019 年 8 月 31 日,华为方舟编译器开源官网正式上线,并首次开放了框架源码.方舟编译器对终端软件编译机制进行了架构级优化,将显著地提升用户体验. 官方网站: https://www.open ...

  2. 最新微软语音合成网页版源码+影视解说配音网页版

    正文: 最新微软语音合成网页版源码,影视解说配音网页版,几个文件写成的微软语音合成接口,调用的是官方api,亲测合成很快,大家总听到的短视频电影解说与搞笑短视频,都是微软配音员,可以说是市面上语音合成 ...

  3. 微软语音合成网页版源码,影视解说配音网页版

    简介: 最新微软语音合成网页版源码,影视解说配音网页版,仅几个文件写成的微软语音合成接口,调用的是官方api,亲测合成很快,大家总听到的短视频电影解说与搞笑短视频,都是微软配音员,可以说是市面上语音合 ...

  4. 汇编 debug调试没有执行对应文件源码指令---》失灵---》正确使用debug第一步

    汇编 debug调试时 没有执行 对应文件源码指令 果然不认真听课就是这样 把调试命令 debug test.exe 错误写成 debug test.asm 并一直使用多达两周时长 我真是个人才Σ( ...

  5. 微软开源软件特征源码分析工具 Application Inspector

    微软近日开源了其内部使用的软件特征源码分析工具 Application Inspector. 现代软件开发实践通常需要基于数百个现有组件中构建应用,无论它们是由组织中的另一个团队.外部供应商还是开源社 ...

  6. 调试系列1:bugreport源码篇

    framework/native/cmds/bugreport/bugreport.cpp framework/native/cmds/dumpstate/dumpstate.cpp framewor ...

  7. flutter 真机无法调试 sdk报错_Flutter源码剖析(二):源码的阅读与调试环境配置

    综述 Flutter从架构上来说有3部分: 用Dart写的Framework层,面向开发者 用Java/Kotlin写的Embdder层(For Android,iOS是OC/Swift),纯Flut ...

  8. Windows+IDEA本地调试Apache Kylin3.1.0源码调试-Coordinator(简单易操作版)

    Windows+IDEA 本地调试Kylin3.1.0源码-Coordinator 写在前面:依赖环境 Windows7 旗舰版 IntelliJ IDEA 2018.3.6 x64 Java ver ...

  9. 教你编译调试Elasticsearch 6.3.2源码

    前言 想深入理解 Elasticsearch,阅读它的源码是很有必要的,一来可以了解它内部的具体实现,有助于调优,二来可以了解优秀开源项目的代码架构,提高我们的代码架构能力等 阅读Elasticsea ...

最新文章

  1. 最好机器学习NLP和python教程
  2. 2017-2018-1 20155338 《信息安全系统设计基础》 第三周学习总结
  3. android中AVD的使用
  4. 592zn rom/apk 自动签名工具_ios超级签名服务器
  5. CODEVS-1758-维护数列-NOI2005-splay
  6. 考古甜瓜子_数字考古与开源
  7. php折半查找算法,二分查找 [折半查找] 算法 PHP 版
  8. xml、xhtml、html、dhtml的区别
  9. [leetcode] 406. Queue Reconstruction by Height (medium)
  10. linux 查看libevent 安装目录,关于Linux下libevent库的基础安装和使用
  11. chrome session丢失_为什么还是由这么多人搞不懂Cookie、Session、Token?
  12. C/C++遍历目录下的所有文件(Windows篇)
  13. 2021中青杯C题-在线教学的分析与研究
  14. 亚马逊要验证收款查关联?
  15. Windows Server 2019/2022域控制器网络位置变为“专用网络”或“公共网络”
  16. 发一个自己原创的迷你博客的PHP源程序(支持QQ、MSN和飞信机器人和短息接口)
  17. 【Hive】03-数据类型和文件格式
  18. 逻辑回归Logistics--简述
  19. Cglib和jdk动态代理
  20. 【雷达】基于Matlab模拟海洋监视雷达检测仿真

热门文章

  1. Kafka Manager 编译 + 部署运行
  2. KubeEdge vs K3S:Kubernetes在边缘计算场景的探索
  3. 上篇文章中ygc越来越慢的case的原因解读
  4. SpringCloud的版本
  5. redis:list的底层实现--压缩列表
  6. 【Scratch】青少年蓝桥杯_每日一题_2.23_小猫来回走
  7. C语言 某班级有30名学生,要求从键盘输入每个学生的数学课程成绩(百分制),并进行以下处理
  8. org.hibernate.transientobjectexception:The given object has a null identifier: com.gxuwz.check.entit
  9. python3.6字典有序_Python-字典是用Python3.6+订购的吗?
  10. 电路计算机辅助设计上海电力学院,上海电力学院电路计算机辅助设计二端口电路的设计.doc...