当前位置:C++技术网 > 资讯 > 论调试,调试经验总结分享,找Bug技巧

论调试,调试经验总结分享,找Bug技巧

更新时间:2015-06-23 22:27:49浏览次数:1+次

    c语言或c++,一个功能完不成,总是出错,梳理整个思路,逻辑又没有问题。那往往只是某一句话出了问题。这种问题包括漏写(或多写)某一句话,调用顺序错误,函数、宏的参数引入错误等。这些错误常常使我们的编程举步维艰。本文中我们将讨论如何稍稍减少找到错误的源头的时间。
    做三个假设。一,csdn上的代码都是正确的。二,我们之前没有做过这个功能。三,我们独自在有网络的地方调试,可以查资料但没有人可以问。
    由于网上的正确代码不尽相同,常常使我们误认为是这些不同导致了错误。所以这里我建议,切忌盲目的搜寻很多份别人的代码,挨个试。尽量先搞清楚,哪一种方法是主流的,并找一份带有详细注释的使用该方法的代码。这样做的好处是使我们更容易一次性接近正确。避开偏门和冷门的方法和工具,因为那将使你找不到资料。
    引用别人代码时,我们必须迅速的确定哪些东西是系统原装的,哪些东西是用户自建(重载)的。比如一般来说,m_是类的成员变量,p是指针。如果遇到没见过的类名(消息名),立刻百度以确定是否为用户自建的分类。如为重载函数,确定其运行流程。如为泛型,确定其可以引进的参数类型。这有助于我们迅速搞清用户做了什么,可以查知哪一步出了问题。
    是否为调用顺序错误,断点调试我就不说了。可以看看一段里哪一句比较陌生。陌生的标准是什么呢?就是你不能确定调用之后会产生什么结果。这样的语句往往就是问题所在。先将之注释,而后渐渐弄清。
    如果一个函数,每次引用立即崩溃,怎么改参数都不起作用,那么我们想想有哪些东西与之有关。将与之有关的东西稍加改动,说不定立竿见影。参数可以尝试用GetLastError函数和Try,Catch机制加以捕捉。
    在大段的程序里,找一个拐了小弯的地方,不容易。大多数的程序员都会使用排除法加以甄别。我们清楚的知道,一旦找到,问题将迎刃而解。所以很多时候码代码,往往是找和标准代码的不同。这里我推荐编程人员下载一个文本比较器windiff,用来对比代码间的不同。以确定是否漏写,多写。
    本文的作者其实很纠结这些问题,无奈学识浅薄。这个文章后面数段都是勉强拼凑,只有开头不是凑的。希望各位高手给予关于此问题的指导。谢谢。