调试查看CLR运行代码

SOS (Son of Strike)调试扩展可以让我们在调试过程中查看CLR运行代码。SOS.dll随.NET一起安装,对于.NET 4.0来说,SOS.dll的所在位置是:C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll。

□ 安装Debugging Tools for Windows

在使用SOS之前,需要安装调试工具,在这里。在"Standalone Debugging Tools for Windows(WinDbg)"中找到需要下载的资源,下载获得一个名为"sdksetup.exe"的可执行文件。

→双击运行
→选择安装位置,点击若干次"Next",来到"Select the features you want to install"界面
→只勾选"Debugging Tools for Windows",点击"Install"

□ 使用SOS调试扩展

→右键项目属性
→在"调试"下勾选"启用本机代码调试"

→保存
→在代码中的某处打上断点,点击"启动"
→等程序运行到断点处,点击"调试"--"窗口"--"即时",在"即时窗口"中输入如下命令加载SOS调试扩展

注意:由于第一次加载使用,程序运行到断点处的时间可能会较长(几分钟)
→输入如下命令查看进程内CLR托管的所有线程

□ SOS调试扩展的其它用处

使用SOS调试扩展还可以帮助我们做如下事情:
○ 查看对象销毁
○ 查看内存泄漏
○ 查看对象所属代
......

更多信息,在这里

时间: 2024-11-05 06:17:36

调试查看CLR运行代码的相关文章

CLR基础,CLR运行过程,使用dos命令创建、编译、运行C#文件,查看IL代码

CLR是Common Language Runtime的缩写,是.NET程序集或可执行程序运行的一个虚拟环境.CLR用于管理托管代码,但是它本身是由非托管代码编写的,并不是一个包含了托管代码的程序集,所以不能使用IL DASM进行查看,但CLR以dll的形式位于.NET版本号文件夹内. □ C#源代码从编译到CLR运行的全过程 →编写C#源代码,以class,struct,enum,interface,delegate...的形式 →编译器把源代码编译成.dll或.exe,其中包含了一些重要信息

C++手动加载CLR运行托管程序(CLR Hosting)

转载自:http://www.linuxidc.com/Linux/2012-10/72293.htm 机制介绍 有些时候主程序是通过C/C++实现的,但是我们希望通过托管代码来扩展非托管程序,从而也获得托管代码带来的一系列优点.比如开发效率高,自动垃圾回收等. 运行托管与非托管代码根本区别在于托管代码是进程首先加载CLR然后通过CLR运行托管程序,而非托管代码则是操作系统直接根据其PE Header加载程序分配内存从而运行.因此如果需要通过托管代码来扩展非托管程序,首先要加载CLR来使非托管程

【Android】Android Studio 1.5+ 中混合调试Native和Java代码

[Android]Android Studio 1.5+ 中调试Native和Java代码 Android Studio 1.5+表示Android Studio 1.5版本以及以上. 网上大部分中文或英语教程还是停留在老版本的Android Studio的Debug的设置,要么不全.正好最近工作中要在Android Studio中调试C++代码,就来写一篇咯. Android Studio 1.5+的调试设置与之前有所不同. 而且新版中推出了一个Hybrid的调试:可以混合调试Native代码

【转】android IDE——通过DDMS查看app运行时所占内存情况

在Android内存优化方面,我们不可能做到没有大内存的占用情况. 所以有时候要清楚我们的app到底占用了多少内存,哪一步操作占用了多少的内存. 这时候,android的ddms中提供了一个工具,是可是实时查看app运行时的内存使用情况. 下面我以android studio为例.其实eclipse adt 是一样的. eclipse中也是这个图标. 如何使用,图中已经表明的很清楚了. 1,找到当前运行的手机 2,点击和你app相同包名的进程 3,点击update Heap 4,切换到Heap视

AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码

AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码 添加Watch应用对象时新增内容介绍 Watch应用对象添加到创建的项目中后,会包含两个部分:Watch App 和 WatchKit Extension,如图2.18所示.其中,Watch App部分位于用户的iWatch上,它目前为止只允许包含Storyboard文件和Resources文件.在我们的项目里,这一部分不包括任何代码.WatchKit Extension部分位于用户的iPhone安装的对应App上,这

使用VS插件在VS2012/2013上编辑和调试Quick-Cocos2d-x的Lua代码

来源网址:http://www.cocoachina.com/bbs/read.php? tid=205043 http://cn.cocos2d-x.org/tutorial/show?id=507 BabeLua简单介绍  BabeLua是一款基于VS2012/2013(简称VS)的免费开源的Lua集成开发环境,在Lua编辑和调试方面,具有例如以下功能和特性: ●Lua语法高亮 ●语法检查 ●自己主动补全 ●一键凝视 ●自己定义代码折叠 ●project管理 ●高速搜索和跳转 ●文件大纲 ●

在linux下,查看一个运行中的程序, 占用了多少内存

1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存. 虚拟内存可以不用考虑,它并不占用实际物理内存. (2). top 命令也可以 其中  VIRT(或VSS)列  表示,程序占用了多少虚拟内存. 同 ps aux 中的 VSZ列 RES列 表示, 程序占用了多少物理内存.同 ps aux 中的RSS列 2.在linux下, 查看当前系统占用

eclipse调试openstack的nova代码

前段时间一直在研究openstack的nova部分的代码.特别想知道,如何用eclipse来调试代码,也在论坛上问了别人,无果,没人回复我.最后还是自己摸索出了出路. 下面写出自己探索之路.我是用devstack搭建的openstack环境.搭建步骤可以参见我另一篇博客文章. 我的nova代码是这段代码里面没有bin目录,这就使得程序没有入口.但是devstack安装的环境中,在/usr/loacl/bin/目录下有nova-api文件. 在你自己的项目下,新建一个bin文件下,将nova-ap

HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo

26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式运算框架(如:mapreduce,spark,tez,--)提供数据存储服务 l 重点概念:文件切块,副本存放,元数据 26.1 HDFS使用 1.查看集群状态 命令:   hdfs  dfsadmin –report 可以看出,集群共有3个datanode可用 也可打开web控制台查看HDFS集群