Eclipse debug
step into:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数);
step over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。有一点,经过我们简单的调试,在不存在子函数的情况下是和step into效果一样的(简而言之,越过子函数,但子函数会执行)。
step out:当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。
前些天和同事交流调试技巧时,知道了 Eclipse debug 时有个 drop to frame 的技巧。这是我以前不知道的,自己又查了一下这个功能的含义。官方的解释是:
Select the
Note this command is only available if the current VM supports drop to frame and the selected stackframe is not the top frame or a frame in a native method.
就是说,这个功能可以重新跳到当前方法的开始处重新执行,并且所有上下文变量的值也回到那个时候。不一定是当前方法,
可以点击当前调用栈中的任何一个frame跳到那里(
除了最开始的那个frame)。
主要用途是所有变量状态快速恢复到方法开始时候的样子重新执行一
遍,即可以一遍又一遍地在那个你关注的上下文中进行多次调试(
结合改变变量值等其它功能),而不用重来一遍调试到哪里了。
当然,原来执行过程中产生的副作用是不可逆的(
比如你往数据库中插入了一条记录)。