.NET调试实例-信息和安装说明 (原创翻译)

简介:
原文地址: http://blogs.msdn.com/tess/pages/net-debugging-demos-information-and-setup-instructions.aspx
译者注释 (Just do it) 1、 这篇是这个系列的第一篇,主要是简单介绍了作者的想法和开始准备工作。
2、这个系列的实验非常强调动手实践,所以建议大家一定要边看边实践。
3、实践中遇到问题可以在这里或者去Tess的Blog上留言,我会尽力解答的。
4、不要害怕使用Windbg,一回生二回熟!
5、如果一些常识性的概念不太了解,可以先在网上查一下,或者直接留言咨询。
  希望大家能真正亲自动手实践,然后踊跃留言啊!

.NET 调试实例
这是一个系列的调式实例,目的是为了帮助你在调式.NET应用程序中最常见的死锁(Hang)、性能(performance)、内存(memory)和系统崩溃(crash)方面获得一些上手的经验。
这些实例都是用ASP.NET写的,这意味着在你安装这些实例的机器上必须已经安装了IIS和.net framework 2.0。
每一个实例都会有一些关于如何开始的介绍,但是为了给你更多的机会去自己实践,实例的介绍会故意保持非常简单。当你遇到困难的时候,可以参考注意事项(Hints)。
如果时间允许,新实例将发布在  http://blogs.msdn.com/Tess (我计划每周更新一个实验)。
因为所有实例都将使用相同的Web站点来做实验,所以所有实例只需要安装一个应用程序就够了。
注意:这些实例将导致CPU的高使用率、高内存消耗和崩溃,所以一定要确保你只把这些实例安装在那些没有人会因为系统死锁或Web服务崩溃而抱怨的开发用的机器上。

安装
1.下载实例站点(见后面的附件)并解压到你的硬盘上。(刚刚上传了一个不需要Framework 3.5的版本)
2.在IIS中新建一个名称为BuggyBits的虚拟目录。
3. 浏览默认站点  http://localhost/buggybits/default.htm  ,以确保您正确设置了虚拟目录。
4.浏览公司信息页面  http://localhost/BuggyBits/CompanyInformation.aspx ,以确保您能够正确浏览ASP.NET页面。
5.从  http://www.microsoft.com/whdc/devtools/debugging/default.mspx  下载并安装Windows调试工具集(debugging tools for windows)。
6.通过双击运行Internetconnections.reg文件来改变IE浏览器对于相同站点默认的对外连接数。(注意:如果你感觉这样直接修改注册表不爽,你可以在记事本查看这个文件,然后手工修改注册表)
7.安装 tinyget(IIS6.0资源包的一部分  http://support.microsoft.com/kb/840671 ),我们将通过使用这个工具给一些页面施压,以便产生死锁和内存泄漏。

术语和工具
每个实例/实验都假设你已经熟悉下表中的内容:
Windbg 随Windows调试工具集一起安装的调试器
默认情况下会安装在“C:\program files\debugging tools for windows”
Adplus 自动抓取内存转储文件的脚本,同意也安装在Windows调试工具集的目录里。
Debuggers directory 典型的目录是“ c:\program files\debugging tools for windows”
SOS .NET托管调试扩展
同.Net Framework同时安装并存在于Framework目录(通常是“C:\Windows\Microsoft.NET\Framework\v2.0.50727”),为了方便,你可以直接拷贝sos.dll到Debuggers directory。
Loading SOS 可以通过在Windbg的命令行窗口运行".load<路径到sos.dll>\sos.dll"命令来加载SOS扩展,或者通过运行".loadby sos mscorwks"命令(这两种方式都是从Framework的目录加载的sos.dll)。如果sos.dll已经被拷贝到调试器目录,你只要使用简单的".load sos"命令就可以了。
Setting up symbols 符号(Symbols)是用来在调试本地/非托管程序时,查看非托管堆栈时用的。更多信息请参考: 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)是一个命令行的超文本传输协议(HTTP)客户端,支持多线程和循环(looping)。你可以使用TinyGet测试和解决客户端和服务之间通讯的问题。使用TinyGet,你可以通过配置许多不同的参数的方式自定义你的测试需求,包括身份验证方法, HTTP版本,输出格式。 您也可以使用脚本指定循环和多线程。 

更多信息请参考 http://support.microsoft.com/kb/840671
熟悉一些SOS命令和Windbg的知识也是有用的。下面的文章作为参考资料可能会用得到。
安装 Windbg
入门-第一部分
入门-第二部分
高级命令
 

已经可用的实验
实验描述 回顾
.NET调试实例 实验1:死锁 回顾 
.NET调试实例 实验2:崩溃 回顾
.NET调试实例 实验3:内存 回顾
.NET调试实例 实验4:高CPU利用率 回顾
.NET调试实例 实验5:崩溃 回顾
.NET调试实例 实验6:内存泄漏 回顾
.NET调试实例 实验7:内存泄漏 回顾

附件: BuggyBits.zip

Debug 探索团队
-博客园.Debug探索团队 

-By Justin/2008年7月8日 2:00:48



本文转自Justin博客园博客,原文链接:http://www.cnblogs.com/justinw/archive/2008/07/08/1237849.html,如需转载请自行联系原作者

相关文章
|
5月前
|
API
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
|
2月前
|
机器学习/深度学习 文字识别 并行计算
一款.NET开源的屏幕实时翻译工具
一款.NET开源的屏幕实时翻译工具
|
4月前
|
开发框架 .NET C#
VSCode开发.net项目时调试无效
【9月更文挑战第22天】在使用 VSCode 开发 .NET 项目时遇到调试问题,可从项目配置、调试配置、调试器安装、运行环境、日志和错误信息等方面排查。确认项目类型及文件配置,检查 `launch.json` 文件及配置项,确保调试器扩展已安装并启用,验证 .NET 运行时版本和环境变量,查看 VSCode 输出窗口和项目日志文件,检查权限及代码错误。若问题仍未解决,可查阅官方文档或社区论坛。
|
4月前
|
自然语言处理 C# 图形学
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
|
5月前
|
API
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
|
6月前
|
Linux C# iOS开发
如何用 WinDbg 调试Linux上的 .NET程序
【7月更文挑战第13天】 1. `dotnet-dump`: Collects process dumps with `dotnet-dump collect -p &lt;process_id&gt;`. 2. `lldb`: Debugs Mono runtime apps on macOS/Linux. 3. **Visual Studio Code**: Remotely debugs .NET via the C# extension. 4. **JetBrains Rider**: Supports remote debugging of .NET on Linux.
|
7月前
|
开发框架 前端开发 .NET
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
集成于VS 2019,EXT.NET前端和ASP.NET后端,搭配MSSQL 2018数据库。系统覆盖样品管理、数据分析、报表和项目管理等实验室全流程。应用广泛,包括生产质检(如石化、制药)、环保监测、试验研究等领域。随着技术发展,现代LIMS还融合了临床、电子实验室笔记本和SaaS等功能,以满足复杂多样的实验室管理需求。
90 3
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
|
5月前
|
人工智能 文字识别
通义语音AI技术问题之LCB-net模型对幻灯片中文本信息的使用如何解决
通义语音AI技术问题之LCB-net模型对幻灯片中文本信息的使用如何解决
31 0
|
7月前
|
安全 程序员 Shell
老程序员分享:NSIS自定义界面,下载并安装Net.Framework4.8
老程序员分享:NSIS自定义界面,下载并安装Net.Framework4.8
|
7月前
|
自然语言处理 C# 图形学
​一款开源的.NET程序集反编译、编辑和调试神器
本文介绍了.NET反编译和调试工具dnSpyEx的使用方法。dnSpyEx是dnSpy的非官方Fork版本,支持.NET Framework、.NET Core和Unity程序集的调试和编辑,具有多种语言界面。主要功能包括:浅色、蓝色和深色主题,调试支持,代码编辑以及多语言支持。用户可以从GitHub下载并直接运行dnSpyEx,无需安装。通过创建测试项目,编译成dll文件,然后使用dnSpyEx进行调试和编辑程序集中的代码和IL指令。此外,文章还提供了项目源码地址和相关优秀项目的链接。
143 0