转自:https://blog.csdn.net/william_hehe/article/details/80898031
1.首先设置断点。
2.Step into(F7):进入
若函数A内存在子函数a时,会进入子函数a内执行单步调试。
如下图:
在第三个函数设置断点,内部有add和sub的子函数,执行到调用时会进入子函数,进入之后会再次返回到调用点。
3.Step over(F8):单步
若函数A内存在子函数a时,不会进入子函数a内执行单步调试,而是把子函数a当作一个整体,一步执行。如下图:
over就是从表面上过去,执行但不会进入函数。如上图,在#6和#7时不会进入子函数。
再给一个例子讲解这两个,是比较常用的:
样例程序 01 def helloworld(): 02 print 'hello world' 03 a=1 04 b=2 05 c=3 06 for i in range(1,3): 07 print 'i',i 08 a=1 09 b=2 10 c=3 11 helloworld() 12 a=1 13 b=2 14 c=3
4.step out(shift+F8):
当目前执行在子函数a中时,选择该调试操作可以直接跳出子函数a,而不用继续执行子函数a中的剩余代码。并返回上一层函数。
//这里存疑,如果你不执行后续代码直接跳出,那么还能得到函数返回结果吗?可以,试了一下,实际上会接着运行,只不过表面上跳过了。
def helloworld(): print("Hello") print("World") a=5 b=3 print(a+b) helloworld()
在函数调用点设置断点,并Step into,然后一次step over,到了print("World")这一句,点击step out,控制台输出:
Hello
World
8
证明,step out并不是终止被调用函数的执行,而是跳出子函数。
5.show execution point (F10) 显示当前所有断点
6.run to cursor(Alt +F9) 直接跳到下一个断点
7.Resume Program :试了一下,应该是和跳到下一个断点一样的。