斷點調試

斷點調試

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");
}
相關文章
相關標籤/搜索