在開發中,程序員發現一個很是詭異的錯誤,怎麼看源代碼都發現不了這個錯誤,這時老程序員就會舒適提示,能夠使用斷點調試,一步一步的看源碼執行的過程,從而發現錯誤所在程序員
斷點調試是指本身在程序的某一行設置一個斷點,調試時,程序運行到這一行就會停住,而後你能夠一步一步的往下調試,調試過程當中能夠看各個變量當前的值,出錯的話,調試到出錯的代碼行即顯示錯誤,停下,而後程序能夠進行分析從而找到這個BUG數組
f5 開始調試,執行到下一個斷點函數
f11 逐句執行代碼,會進入到函數體中調試
f10 逐過程執行(遇到函數,跳出前,會將該函數執行完)code
shift+f5 終止調試開發
shift+f11 跳出(跳出某個函數,跳出前,會將該函數執行完)源碼
看一下變量的變化狀況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循環了"); }
看一下數組越界的狀況,當數組越界後,會輸出一個爲止的值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]); } }
演示若是進入到調用的函數體內,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; }
#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"); }
在開發中,程序員發現一個很是詭異的錯誤,怎麼看源代碼都發現不了這個錯誤,這時老程序員就會舒適提示,能夠使用斷點調試,一步一步的看源碼執行的過程,從而發現錯誤所在
斷點調試是指本身在程序的某一行設置一個斷點,調試時,程序運行到這一行就會停住,而後你能夠一步一步的往下調試,調試過程當中能夠看各個變量當前的值,出錯的話,調試到出錯的代碼行即顯示錯誤,停下,而後程序能夠進行分析從而找到這個BUG
f5 開始調試,執行到下一個斷點
f11 逐句執行代碼,會進入到函數體中
f10 逐過程執行(遇到函數,跳出前,會將該函數執行完)
shift+f5 終止調試
shift+f11 跳出(跳出某個函數,跳出前,會將該函數執行完)
看一下變量的變化狀況
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循環了"); }
看一下數組越界的狀況,當數組越界後,會輸出一個爲止的值
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]); } }
演示若是進入到調用的函數體內,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; }
#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"); }