.NET Debugging Demos

原文 windows

http://blogs.msdn.com/tess/pages/net-debugging-demos-information-and-setup-instructions.aspx 缓存

.Net 调试举例——安装指南 多线程

这是一系列调试例程,帮您得到关于dotnet 应用程序的挂起,性能,内存或崩溃等类型问题的第一手经验。 asp.net

这个示例是基于asp.net技术的,这就意味着安装此示例的开发环境中须要 iis 和 .net framework 2.0。 工具

每一个新的示例会有一些基础指南,但我仍是故意的保留的其简洁性,以便你有更多的机会来探索本身的想法,同时若是您有其余想法我也会给必定的提示。 性能

若是有充足的时间,我会将新的示例发布在 http://blogs.msdn.com/tess/ (我计划每一个礼拜发布一个新示例) 测试

全部的示例将使用同一个站点,所以全部的示例均安装在一个应用程序中。 spa

注意:这些示例中将会引发高CPU使用率,高内存利用率和崩溃,所以请确保这些示例仅仅安装在开发环境中,系统挂起和服务崩溃不会影响到其余人。 .net

安装 命令行

一、 下载示例站点(已附录在本帖后),解压缩文件到硬盘中的文件夹(备注:已经上传了一个不须要3.5 的新版本)

二、 添加一个新的iis虚拟目录,取名 BuggyBits

三、 定位到 http://localhost/BuggyBits/Default.htm ,确保虚拟目录设置正确;

四、 浏览公司信息站点:http://localhost/BuggyBits/CompanyInformation.aspx 以确保iis支持 aspx页面;

五、 从以下网址中下载并安装windows调试工具:

http://www.microsoft.com/whdc/devtols/debugging/default.aspx

六、 双击运行InternetConnections.reg,此文件做用于注册表(注意:如何注册表的风险由您本身承担,若是担忧注册表文件稳定,可使用 notepad 打开该文件并手动修改内容),用来改变外链接数量,也可以使用Internet Explorer修改一样的站点。

七、 安装 tinyget(随IIS6.0资源包一块儿安装 http://support.microsoft.com/kb/840671 ),咱们可使用该工具对部分文件进行压力测试以便产生挂起和内存泄漏问题;

工具和术语

每一个示例/实验中,假设您对以下的技术很是熟悉:


Windbg

Windows系统上安装的调试器

该工具将默认安装到调试目录 ”c:/program files/debugging tools for windows”

Adplus

自动获取内存存储的脚本,也安装在调试目录中。

Debuggers directory

默认目录: c:/program files/debugging tools for windows

SOS

调试托管的Dotnet扩展工具

该文件是随着framework 安装的,能够在framework安装目录 c:/windows/Microsoft.NET/Framework/v2.0.5277 中找到该文件,也能够简单的拷贝sos.dll文件到调试目录中便可。

Loading SOS

windbg命令窗口中键入 .load <path to sos>/sos.dll 来装载SOS;或经过 .loadby sos mscorwks (将从framework目录中加载)来加载;也可将sos文件拷贝到windbg的目录中,只须要键入 .load sos 加载

Setting up symbols

符号特征文件是为 本地/dotnet 调试充分条件,也能够查看 本地/dotnet 的堆栈部份内容。能够查看以下地址查看更多的信息:

http://blogs.msdn.com/tess/archive/2005/12/05/why-do-i-get-weird-function-names-on-my-stack-a-discussion-on-symbols.aspx

能够在windbg命令行中运行以下命令来设置符号文件路径:

.symfix c:/mycache

.reload

其中 c:/mycache 是本地符号文件的缓存路径。若是在windbg中选择存储工做空间信息,符号文件也会保存以便下次调试时使用。

Tinyget

“TinyGet 5.2(TinyGet.exe)” 是一个命令行工具,支持多线程和缓冲池的超文本客户端,可使用 TinyGet 工具来测试、跟踪使用http的从客户端到服务端通信。经过 TinyGet ,能够经过不一样影响因素来自定义测试请求,包括用户验证方法、HTTP 版本和输出格式。可使用脚本定制循环次数或多线程问题:

查看 http://support.microsoft.com/kb/840671/ 以获取更多的信息。

熟悉 sos和windbg 命令也是有帮助的,以下的引用文章也是很是有用的:

Install Windbg

Getting started - Part I

Getting started - Part II

Advanced commands

其余的实验指南:

实验指南

实验过程

.NET Debugging Demos Lab 1: Hang

Walkthrough

.NET Debugging Demos Lab 2: Crash

Walkthrough

.NET Debugging Demos Lab 3: Memory

Walkthrough

.NET Debugging Demos Lab 4: High CPU hang

Walkthrough

.NET Debugging Demos Lab 5: Crash

Walkthrough

.NET Debugging Demos Lab 6: Memory Leak

Walkthrough

.NET Debugging Demos Lab 7: Memory Leak

Walkthrough

相关文章
相关标签/搜索