« Ring0上调用未导出Zw函数通用函数VC程序查错之内存访问异常 »

VC程序查错之序言

作者:langouster

一直准备写一个关于C、C++程序调错的专题,这个专题面向的主要人群是程序开发人员,从今天开始争取每周写一点,把我所知的一些小东西和大家分享分享。

一。工具准备,我常用的工具有:

VS2005是我用的最多的开发工具,他的强大的调试分析能力注定会成为我们调试程序的首选。

Windbg是微软出的专门的调试器,功能非常强大,支持应用程序与双机驱动调试,但它的界面实在是太简略。

IDA是一款强大的二进制反汇编与分析工具,其中的F5插件支持直接把exe文件反编译成C语言。

OD也是一个常用的反汇编工具,它比IDA在动态分析上要强许多。

二。程序BUG分类

1.内存访问异常

2.内存句柄泄露

3.堆越界与栈溢出

4.共享冲突与死锁

.....

我喜欢把程序的异常分成两个大类,一类是程序出错时就是因为此刻执行的代码错误引起的,这类错误相对较容易调试分析,暂时叫它为即时性错误,还有一类有程序执行错误后不会立马显现出现,过了一段时间后才显现错误,暂时叫这类错误为非即时性错误。

内存访问异常、死锁是即时性错误,一般比较容易调试,其它的几个大多数情况下都不是即时性错误,除内存泄露外调试都相对较难一点,在以后的章节中我会与大家逐一分享他们的查错方法。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 2.0 bate Build Theme by toboku

Copyright langouster. Some Rights Reserved.   苏ICP备06046736号