调试器(Debugger) 调试器:一种软件工具,可辅助用户装载程序并控制 程序运行,进而定位软件错误 ■调试器分类 通用调试器:SoftICE、OlyDbg、WinDbg、IDAPro. 专用调试器:随编程语言开发工具提供,比如随VS、 Eclipse、 Codeblocks等IDE提供的调试器,以及gdb等命令行 调试器 程序运行无错误或调试无错误并不表示程序正确,调 试只能证明程序包含错误,不能证明程序正确,程序 正确性需要形式化证明才能保证 ■但现实世界中,调试器仍然具有重要作用
调试器:一种软件工具,可辅助用户装载程序并控制 程序运行,进而定位软件错误 调试器分类 通用调试器:SoftICE、OlyDbg、WinDbg、IDAPro… 专用调试器:随编程语言开发工具提供,比如随VS 、 Eclipse、Codeblocks等IDE提供的调试器,以及gdb等命令行 调试器 程序运行无错误或调试无错误并不表示程序正确,调 试只能证明程序包含错误,不能证明程序正确,程序 正确性需要形式化证明才能保证 但现实世界中,调试器仍然具有重要作用 调试器(Debugger) 6
穷人的调试器一 printf 思路:用printf>将所有怀疑有错误的数据打印 出来观察 1 int main() 2 3 int n; 4 double pi,i,j; 5 printf("Please input wanted loading minute:\n"); 6 scanf("%d",&n); 7 for(pi=0.0,i=1.0,j=1.0;1<n;i+=2,j=-j) 8 9 printf("%1f\n",j); 10 pi+=(17(1*j); 11 12 pi*=4; 13 printf("The value of pi is%lf",pi); 14 return 0; 15}
思路:用printf将所有怀疑有错误的数据打印 出来观察 穷人的调试器 —— printf 7 1 int main() 2 { 3 int n; 4 double pi, i, j; 5 printf("Please input wanted loading minute:\n"); 6 scanf("%d", &n); 7 for (pi = 0.0, i = 1.0, j = 1.0; i < n; i += 2, j = -j) 8 { 9 printf("%lf\n", j); 10 pi += (1 / (i*j)); 11 } 12 pi *= 4; 13 printf("The value of pi is%lf", pi); 14 return 0; 15 }
内容 ■程序调试 ■GUI界面下的调试 ■命令行调试工具 S 8
程序调试 GUI界面下的调试 命令行调试工具 内容 8
用GU调试要点 找到设置breakpoint的菜单项,一般可直接在 编辑框的左侧双击设置断点 ■ 以Debug?模式编译程序 ■启动调试模式,一般从菜单或者按钮找 ■找到step in,step out等几个菜单项,一般都配 备快捷键,可单步执行程序 ■实例:Visual Studio、Eclipse、Codeblocks 9
找到设置breakpoint的菜单项,一般可直接在 编辑框的左侧双击设置断点 以Debug模式编译程序 启动调试模式,一般从菜单或者按钮找 找到step in, step out等几个菜单项,一般都配 备快捷键,可单步执行程序 实例:Visual Studio、Eclipse、Codeblocks 用GUI调试要点 9
内容 ■程序调试 ■GU1界面下的调试 ■命令行调试工具 10
程序调试 GUI界面下的调试 命令行调试工具 内容 10