断点调试

断点调试

1. 实际需求

在开发中,程序员发现一个很是诡异的错误,怎么看源代码都发现不了这个错误,这时老程序员就会舒适提示,能够使用断点调试,一步一步的看源码执行的过程,从而发现错误所在程序员

2.断点调试介绍

断点调试是指本身在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,而后你能够一步一步的往下调试,调试过程当中能够看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下,而后程序能够进行分析从而找到这个BUG数组

  • 断点调试是程序员必须掌握的重要的技能
  • 使用断点调试也能帮助咱们最终查看C程序代码的执行过程,提升程序员的水平

3.断点调试的快捷键

f5 开始调试,执行到下一个断点函数

f11 逐句执行代码,会进入到函数体中调试

f10 逐过程执行(遇到函数,跳出前,会将该函数执行完)code

shift+f5 终止调试开发

shift+f11 跳出(跳出某个函数,跳出前,会将该函数执行完)源码

4.断点调试应用案例

看一下变量的变化状况it

void main(){
    int sum=0;//断点下在这里,而后使用f10(逐过程执行,能够看到各个变量的变化状况)
    int i=0;
    for(i=0;i<10;i++){
        sum+=i;
        printf("i=%d",i);
        printf("sum=%d",sum);
    }
    printf("退出for循环了");
}

5.断点调试应用案例2

看一下数组越界的状况,当数组越界后,会输出一个为止的值io

void main(){
    int arr[]={1,2,3,4,5};
    int i=0;
    int len=sizeof(arr)/sizeof(int);
    for(i=0;i<=len;i++){
        printf("arr[%d]=%d",i,arr[i]);
    }
    
}

6.断点调试应用案例3

演示若是进入到调用的函数体内,f11(进入到函数体),shift+f11(跳出函数)for循环

double cal2(int num1,int num2,char oper){
    double res=0.0;
    switch(oper){
        case '+':
            res=num1+num2;
            break;
        case '-':
            res=num1-num2;
            break;
        case '*':
            res=num1*num2;
            break;
        case '/':
            res=num1/num2;
            break;
        default:
            printf("你的运算符有误");
    }
    return res;
}

7.断点调试应用案例4

#include<stdio.h>
#include<stdlib.h>
#include"myfun.h"

void  main(){
    int n1=10;
    int n2=40;
    char oper="+";
    double res=cal2(n1,n2,oper);
    printf("res=%.2f",res);
    printf("hello1");
    printf("hello2");
    system("pause");
}

断点调试

1. 实际需求

在开发中,程序员发现一个很是诡异的错误,怎么看源代码都发现不了这个错误,这时老程序员就会舒适提示,能够使用断点调试,一步一步的看源码执行的过程,从而发现错误所在

2.断点调试介绍

断点调试是指本身在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,而后你能够一步一步的往下调试,调试过程当中能够看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下,而后程序能够进行分析从而找到这个BUG

  • 断点调试是程序员必须掌握的重要的技能
  • 使用断点调试也能帮助咱们最终查看C程序代码的执行过程,提升程序员的水平

3.断点调试的快捷键

f5 开始调试,执行到下一个断点

f11 逐句执行代码,会进入到函数体中

f10 逐过程执行(遇到函数,跳出前,会将该函数执行完)

shift+f5 终止调试

shift+f11 跳出(跳出某个函数,跳出前,会将该函数执行完)

4.断点调试应用案例

看一下变量的变化状况

void main(){
    int sum=0;//断点下在这里,而后使用f10(逐过程执行,能够看到各个变量的变化状况)
    int i=0;
    for(i=0;i<10;i++){
        sum+=i;
        printf("i=%d",i);
        printf("sum=%d",sum);
    }
    printf("退出for循环了");
}

5.断点调试应用案例2

看一下数组越界的状况,当数组越界后,会输出一个为止的值

void main(){
    int arr[]={1,2,3,4,5};
    int i=0;
    int len=sizeof(arr)/sizeof(int);
    for(i=0;i<=len;i++){
        printf("arr[%d]=%d",i,arr[i]);
    }
    
}

6.断点调试应用案例3

演示若是进入到调用的函数体内,f11(进入到函数体),shift+f11(跳出函数)

double cal2(int num1,int num2,char oper){
    double res=0.0;
    switch(oper){
        case '+':
            res=num1+num2;
            break;
        case '-':
            res=num1-num2;
            break;
        case '*':
            res=num1*num2;
            break;
        case '/':
            res=num1/num2;
            break;
        default:
            printf("你的运算符有误");
    }
    return res;
}

7.断点调试应用案例4

#include<stdio.h>
#include<stdlib.h>
#include"myfun.h"

void  main(){
    int n1=10;
    int n2=40;
    char oper="+";
    double res=cal2(n1,n2,oper);
    printf("res=%.2f",res);
    printf("hello1");
    printf("hello2");
    system("pause");
}
相关文章
相关标签/搜索