Windows下常用的查错和调试工具

因为自己有多年的Windows下的开发经历,对于Windows下的查错调试工具做个简单总结,这里面的提到的工具不包括那些IDE本身自带的工具。

1.Windbg,微软出品,Windows下第一调试利器,其主要功能有:可以Attach正在运行的进程进行调试;可以打开可执行文件调试运行;可以打开Crash Dump文件进行错误分析;配合配套的pdb文件可以迅速定位问题所在。Windbg拥有丰富的命令,并且可以设置复杂的条件断点(我曾经的老大在这方面有非常高的造诣)来进行查错调试。

2.Boundscheck,Compuware Numega 公司出品,Numega公司是一个著名的调试工具出品公司,写过驱动的同学应该都使用过SoftICE,当年自己第一次写驱动时候,使用的就是SoftICE,它是完全仿真出了Windows操作系统的内核构成,因此也容易出现蓝屏,当时自己调试驱动的时候就经常蓝屏,BoundsCheck是一款非常不错的资源泄漏检测工具,可以检测出内存泄漏,句柄泄漏,同时它也可以定位出代码中可能存在写溢出的地方。

3.Gdi Usage,哪个公司产品不知道,主要的功能是用来定位GDI泄漏,对于经常写界面的同学非常有用

4.DBMon,主要用于显示程序中使用OutPutDebugString输出的调试信息

5.Taskinfo,主要用于查看进程及线程的运行状态和资源占用情况,比Windows自带的任务管理器功能更强大

6.Ethereal,网络抓包工具,如果是写通络通讯程序,是必备良器,可以抓取各种协议的数据以便验证和定位问题,Win7叫做Wireshark

之前工作自己常用的查错调试工具就是这些,如果能够很好的掌握以上工具,相信在Windows下大部分的Bug你都能够定位并解决了。