(三十二)单步调试技术
来源:RGiskard     阅读:875
北京的店
发布于 2018-11-09 22:53
查看主页

编译错误与运行错误

单步调试

单步调试就是在要调试的代码段首行加断点,走一步看一下结果,边走边观察,直到发现有哪一步走错了

在vs环境下,断点F9,单步F10,(F10是逐过程stepover,跳过函数具体执行,F11是逐语句stepinto,可以进入函数)开始调试F5,再按F5跳到下一个断点,若无下一个断点则退出调试。黄色箭头表示即将执行这条语句

//求和#include<stdio.h>int sum(int* buf,int n){    int total = 0;    for(int i=0;i<total;i++)    {        total+=buf[i];    }    return total;}int main(){    int buf[64];    for(int i=0;i<64;i++)    {        buf[i]=i;    }    int result = sum(buf,64);    printf("%d\n",result);    return 0;}

程序结果是零,说明程序有错。利用单步调试发现sum函数写错了

监视窗口可以单独只查看某个变量的情况。内存窗口输入p可以看到指针p对应的内存,观看变量a的内存时输入&a。a=0x12345678对应的内存为78 56 34 12共四个字节。

程序崩溃的起因分类

//野指针:不恰当的强制转换#include <stdio.h>int main(){  int a = 10;  double* p = (double*) &a;  *p = 123.345; // 程序崩溃  return 0;}
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
破解/优化C++代码:消除冗余代码
CSS前台经典面试题及解析——小白入门必备
项目经理的角色
TensorFlow工具快速入门教程3深度学习简介
解决win7打印机共享出现‘无法保存打印机设置’操作无...
首页
搜索
订单
购物车
我的