微软走向开源,是时候用vs去单步调试进入源码了。参考地址:http://blog.csdn.net/waxgourd0/article/details/6600182

可供参考的文章:https://msdn.microsoft.com/en-us/library/Cc667410.aspx

1、工具- 选型 – 调试 - 常规,按照下图修改我框起来的地方:

2、工具- 选项 – 调试 - 符号,按照下图进行配置:

这里注意你只需要在位置里添加http://referencesource.microsoft.com/symbols这一项即可,后面是在编译过程中自己产生的,然后将符号缓存路径改为你希望放置的地方,在这里我的路径是D:\development\NetMassDownloader\src(我使用NetMassDonloader没有成功,总是搜索到可供下载的PDB文件为0,我使用的NetMassDownloader的版本为1.6.0.0,按照发布说明已经支持VS 10.0了,如果有谁知道怎么解决请告诉我一下),注意对此路径一定要有读写权限,最后勾选“除排除模块之外的所有模块”。

然后新建一个WPF的工程,我只是在界面上加了一个按钮,简单实现了一个按钮事件:

  1. private void button1_Click(object sender, RoutedEventArgs e)
  2. {
  3. MessageBox.Show("hello word");
  4. }
private void button1_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("hello word");
}

在MessageBox.Show("hello word")上设置断点,运行之后在调用堆栈上就可以观察到调用过程:

右键点击非灰色的可以发现可以查看源代码:

F11单步执行的时候可以发现以前不能查看的代码这时也可以跟深层地追踪源代码:

灰色部分右键点击之后发现”转到源代码“不可用,这时在加载符号中选择如图所示,就可以查看源代码,期间会有下载相应PDB的过程:

至于加载信息显示如下:

如上图所示我在编译以前别的VS平台编译过的工程(经过转换)无法使用转到源代码,加载信息同样如上所示,我当时以为是前两项没有找到PDB的缘故。当我新建一个工程编译一次后,除了新建的这个工程可以使用转到源代码,原本以前平台编译过原本不能使用“转到源代码”功能的工程也同样可以使用此功能了,看来上面的加载信息与能否使用调试源码没有必然联系,在这里希望达人解答一下上面的含义。

最后MS并没有将全部的源代码都开源,所以有时在使用时会有“没有可用的资源”的提示,这时如果还要查看源码的话可以按照堆栈的层次用Reflector直接查看源码。

VS2010下调试.NET源码的更多相关文章

  1. 比特币学习笔记(二)---在windows下调试比特币源码

    根据我一贯的学习经验,学习开源代码的话,单单看是不够的,必须一边看一边调试才能尽快理解,所以我们要想法搭建windows下bitcoin源码的调试环境. 紧接着昨天的进度,想要调试linux下的比特币 ...

  2. Ubuntu下STL源码文件路径+VS2010下查看STL源码

    Ubuntu版本信息 然后STL源码位置就在 /usr/include/c++/7/bits /usr/include/c++/7.4.9/bits 这两个文件下都有 然后我日常写程序用的Window ...

  3. vscode下调试caffe源码

    caffe目录: ├── build -> .build_release // make生成目录,生成各种可执行bin文件,直接调用入口: ├── cmake ├── CMakeLists.tx ...

  4. 使用VS2012调试ReactOS源码

    目录 一 下载并安装VS2012 二 下载并安装WDK80 三 下载ReactOS0315源码 四 下载并安装RosBE211 五 用RosBE命令行编译ReactOS源码 六 用VS2012编译nt ...

  5. 查看和调试Qt源码

    简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...

  6. 查看和调试Qt源码(动态编译的QT也可进入源码)good

    简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...

  7. 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码

    前段时间Cocos2d-x更新了一个Cocos引擎,这是一个集合源码,IDE,Studio这一家老小的整合包,我们可以使用这个Cocos引擎来创建我们的项目. 在Cocos2d-x被整合到Cocos引 ...

  8. Android动态方式破解apk进阶篇(IDA调试so源码)

    一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...

  9. Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)

    一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用 ...

随机推荐

  1. Wookmark-jQuery-master 瀑布流插件

    Wookmark-jQuery-master 瀑布流插件使用介绍,含个人测试DEMO 要求 必备知识 本文要求基本了解 Html/CSS,  JavaScript/JQuery. 开发环境 Dream ...

  2. DEBUG不能进断点 “exited with code -1073741515”

    需要把相关的DLL文件加入到项目对应的DEBUG路径下 IDE :Qt Creator 系统:Win7

  3. 看AngularJS

    最近一段时间一直在看AngularJS,趁着一点时间总结一下. 官网地址:http://angularjs.org/ 先推荐几个教程 1. AngularJS入门教程 比较基础,是官方Tutorial ...

  4. Julia语言:让高性能科学计算人人可用

    Julia语言:让高性能科学计算人人可用要:一群科学家对现有计算工具感到不满:他们想要一套开源系统,有C的快速,Ruby的动态,Python的通用,R般在统计分析上得心应手,Perl的处理字符串处理, ...

  5. jsonp跨域+ashx

    jsonp跨域+ashx(示例) 前言 做B/S项目的时候,我们一般使用jquery+ashx来实现异步的一些操作,比如后台获取一些数据到前台,但是如果ashx文件不在本项目下,引用的是别的域下的文件 ...

  6. poj3006 筛选法求素数模板(数论)

    POJ:3006 很显然这是一题有关于素数的题目. 注意数据的范围,爆搜超时无误. 这里要用到筛选法求素数. 筛选法求素数的大概思路是: 如果a这个数是一个质数,则n*a不是质数. 用一个数组实现就是 ...

  7. codeforces #275 div2题解

    A题大意: 给你l,r,问你在l~r之间,是否存在 a和b互质 , b和c互质 ,但是 a,c不互质 的情况:其中l<=a<b<c<=r;如果存在,就输出a,b,c;不存在就输 ...

  8. C#通过接口与线程通信(捕获线程状态)介绍

    C#通过接口与线程通信(捕获线程状态)介绍 摘要:本文介绍C#通过接口与线程通信(捕获线程状态),并提供简单的示例代码供参考. 提示:本文所提到的线程状态变化,并不是指线程启动.暂停.停止,而是说线程 ...

  9. [转]Bypassing iPhone Code Signatures

    Source Link: http://www.saurik.com/id/8 Due to popular demand, I am putting some of the content I ha ...

  10. 新浪微博SDK在Eclipse引入

    新浪微博SDK在Eclipse中的使用 新浪微博SDK在Eclipse中的使用 今天在看<Android开发应用实战>,全书都在讲一个android版的新浪微博客户端怎么做,于是按照书上步 ...