在开发中,程序员发现一个很是诡异的错误,怎么看源代码都发现不了这个错误,这时老程序员就会舒适提示,能够使用断点调试,一步一步的看源码执行的过程,从而发现错误所在程序员
断点调试是指本身在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,而后你能够一步一步的往下调试,调试过程当中能够看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下,而后程序能够进行分析从而找到这个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"); }