快速入门:使用WINDBG调试.NET 程序

本文介绍了如何使用WinDbg进行.NET程序的调试,涵盖PDB文件、Dump文件的使用,并详细阐述了WinDbg的启动、设置符号路径、加载调试扩展、查看线程、堆栈、对象信息以及调试技巧,如设置断点、查看运行时版本等。
摘要由CSDN通过智能技术生成

WinDbg

WinDbg支持以下三种类型的命令:

·        常规命令,用来调试进程

·        点命令,用来控制调试器

·        扩展命令,可以添加叫WinDbg的自定义命令,一般由扩展dll提供这些命令

PDB文件

PDB文件是由链接器产生的程序数据库文件。私有PDB文件包含私有和公有符号,源代码行,类型,本地和全局变量信息。公有PDB文件不包含类型,本地变量和源代码行信息,且只包含共有成员的调试信息。

Dump文件

利用Dump工具,你可以获得进程的快照信息。一个mini-dump包含当前进程的所有线程,线程栈信息和已加载模块信息。一个full-dump包括更多信息,如堆信息。

使用WinDbg调试

1.       启动WinDbg

要用WinDbg(x86)调式32位程序,用WinDbg(x64)调试64位程序。

2.       使用帮助

任何时候都可以使用!help命令来获取帮助,查看命令的使用方法。

3.       设置SymbolFile Path,指定了符号库,我们才能看到详细的类型信息

SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

WinDbg会将微软的符号库下载指定的本地目录中,以上设置可以使用以下命令来实现:

.symfixc:\symbols,此命令表示要连接到Microsoft服务器下载调试符号文件,符号文件将被下载到c:\symbols目录中。

还可以使用.sympath命令来显示当前的符号路径设置。

4.       重新加载符号

如果进入调试之后才指定的符号路径,需要使用命令来重新加载符号

.reload

5.       加载调试扩展

调试扩展定义了很多命令来调试.net程序。使用调式非托管代码的命令来调试.net程序是非常困难的。下面的命令加载了用于调试.net程序的sos模块。

a.      对于.Net Runtime 2.0

.loadby sos mscorwks

b.     对于.Net Runtime 4.0

.loadby sos clr

sos是一个dll,定义了很多针对.net assembly的调试命令,sos.dll针对不同的runtime有不同的版

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值