如何利用开发开具调试程序-CodeBlock篇

     在编写程序中,通过编译的程序往往也会存在错误(bug)。这种错误是运行错误和逻辑错误,它比语法错误更隐蔽,更危险。如何找出这些错误?在冗长的代码中,找出这些错误来并不是一件容易的事。排错(debug)是一件程序员不得不面对的麻烦事,但真正的程序员会把与bug战斗当成自己的神圣使命。
  调试程序是程序员应该具备的基本能力。在学习编写程序过程中,学会调试程序是最实用的技能之一。可以纯粹依靠人工,一行一行,或一块一块地检查,思考,很累人。
  在实际过程中,调试工作可利用IDE(集成开发环境,如VC++6.0,CodeBlocks)提供的工具进行。通过学会利用IDE调试程序的方法,掌握单步运行程序和使用断点的方法,并在过程中观察运行环境(最重要的是变量)的变化,从而在今后能够高效地完成程序的调试。

一、基本概念

1.单步执行

  • 每执行一步断一下,看到每一步到底干了些什么
  • 方式:Next Line/Step Into/Step Out等

2.运行到光标

  • 运行到光标所在位置,很方便
  • 光标所在位置,实际就是一个“断点”
  • 方式:Run to Cursor

3. 设置断点

  • 任意指定到哪儿断开,想在哪儿停下来,就在哪儿停
  • 相比:单步太烦,运行到光标只能指定一个地方

二、简单调试

1.认识调试

(1)调试菜单


(2)调试工具栏(在实际调试过程中,一般使用工具栏调试程序更方便、快捷)


2.准备调试


示例代码

#include <iostream>
using namespace std;
const double pi=3.1415926;
int main( )
{
    double r,area;
    cout<<"输入半径:"<<endl;
    cin>>r;
    area=pi*r*r;
    cout<<"输出面积:";
    cout<<area<<endl;
    return 0;
}
3.开始调试



注:找不到Watches窗口;在调试工具栏中点击Debugging windows,从弹出的快捷菜单中勾中"Watches"。


4.初试牛刀

调试代码

#include <iostream>
using namespace std;
int main()
{
    int x;
    cout<<"请输入一个整数:";
    cin>>x;
    if(x=1)
        cout<<"你输入的是1!";
    else
        cout<<"你输入的不是1!";
    return 0;
}

 
  
 

三、设置断点和断点应用
  断点是程序执行需要中断的地方。可以让程序中断在需要的地方,从而方便其分析。

     技巧:在调试的过程中,可以直接使用Run to Cursor到下一个断点处停下来,从而避免多次的用Step Into、Next line等命令。一个程序中可以设多个断点,这也为调试提供了方便。

四、程序调试方法小结
  上面仅介绍了程序调试的基本方法,但灵活运用可以为编写出正确的程序提供强大的支撑。
  随着经验的增加,简短且算法简单的程序你可能凭观察就知一二。对需要观察其运行过程的程序,可以这样做:

  • 增加必要的断点(当然,嫌疑解除后去除断点)
  • 如果必要,添加监视,以便于观察一些表达式的值
  • 用Step Into、Step Out或Run to Cursor等的组合,跟踪程序执行的过程
  • 在运行过程中,和自己对运行结果的预期结合起来,思考程序可能出现的问题
  • 需要退出程序时,使用调试菜单中的“Stop Debugging”选项终止执行。这时再修改程序
  • 如果程序执行异常,一定要告诉自己:程序中一定有bug,不是机器的错,我得找出bug来,Bug也一定会被你找出来

寄语

  • 对于初学者,掌握所用的集成开发环境的一般用法,是一件非常重要的事情
  • 单步调试更是在实践中掌握的,做中学,学中记,不同的开发环境,都有类似功能,通一百通
  • 一边看,一边练……

猜你喜欢

转载自blog.csdn.net/macrohui29/article/details/50707189