Eclipse调试python
F5:Step Into 单步调试,跳入函数内部
F6:Step Over 单步调试,不跳入函数内部,执行当前代码
F7:Step Return 返回到当前函数的尾部,跳转到调用函数的位置
F8:Resume 跳到下一个断点或者执行完当前代码
一、打断点
鼠标光标移动到代码左侧,双击左键,出现箭头指的符号,就是断点
开始调试,第一个断点所在行是调试开始的地方
二、开始调试
鼠标左键选中调试程序“ocr_template_match.py”,点击“Run”,选择“Debug”
运行到第一断点所在行代码
显示调试窗口
三、停止当前调试
四、调试方法
1、F7的跳转
当前代码执行到169行
按F7,跳转到172行,“result”和“score”数值发生变化,说明执行了169,170,171行。
F7跳转到当前for循环层的最后一行
再按F7,跳转到169行,“scores”,“digit”,“digitROI”改变,执行完for函数的一次循环,
修改了172行“scores”的值,进入到for循环的下一次循环,
并执行了167行,修改了“digit”,“digitROI”的数值
F7跳出当前层,并执行完随后一条语句
总结:F7在函数内部执行时,跳转到当前函数的最后一行
F7在函数最后一行时,执行完当前函数,并执行完随后的一行
2、逗号分开的语句
第169和170是一行代码,为了方便看,用逗号“,”隔开,写成了两行。
当前调试到169行,按F6,执行到170行,result的值没变化,说明并没有计算result的值
按F6,执行170行,转到171行,result值发生变化,
说明一行代码写成几行,调试时只在最后一行执行
3、调试时,变化的变量显示为黄色
按F6,执行到85行,变化的变量显示为黄色。
执行完成81行代码,求出“gradX”的值,可以看到求出的数值。
4、调试时,运行完前面的代码,现在的位置的代码还未执行
调试运行到第56行,刚执行完上一条代码,也就是53行,定义"digits",变量区中“digits”显示黄色,说明刚刚进行了变化,变量“i”还未出现,说明第56行的变量i还未定义,还没有执行第56行
当进入一个函数,按F7跳不出函数,该怎么办?
在函数外面打上断点,按F8,执行完这个函数,跳到断点处
注意:按快捷键没有反应,可能是快捷键冲突,重新设置即可