调试的时候step into,step out,step over有什么区别?各有什么作用?分别在什么情况下使用?
回答1
main() {run();wait();start();} run() {carrun(); } 如果當(dāng)前箭頭在來(lái)main(), stepover 就是 只看當(dāng)前這一層調(diào)用函數(shù)源名。 run(),wait(),start(),一步一步看這一層都調(diào)用了哪些函數(shù) stepinto 進(jìn)入下一層,就是每碰到一個(gè)函數(shù),都會(huì)進(jìn)去看這個(gè)函數(shù),直到最深層代碼執(zhí)行完畢返回, run(),carrun(),wait(),start(),會(huì)將整個(gè)代碼全部看一遍 stepout 就是返回上一層,當(dāng)前箭頭如果在carrun()上,你點(diǎn)一百下stepout,箭頭就會(huì)到wait()至于在什么情況下使用,它本身就是這種一步一步看代碼的功能。 如果你肯定一直到wait()這里都沒(méi)問(wèn)題,可能是start()出了問(wèn)題, 那就先stepover,然后到度start()再stepinto進(jìn)去看一下start()有沒(méi)有問(wèn)題回答2
step-into–調(diào)試器命令step-into(在GDB中是step)的作用是移動(dòng)到下一個(gè)可執(zhí)行的代碼行。如果當(dāng)前行是百一個(gè)函數(shù)調(diào)用,則調(diào)試器將進(jìn)入函數(shù),并停止在函數(shù)體的第一行。step-into可以幫助初步揭開(kāi)代碼位置的謎團(tuán)。例如,函數(shù)調(diào)用和函數(shù)本身可能在不同的文件中。10.3節(jié)詳細(xì)介紹了C++隱式函數(shù)調(diào)用中的step-into。
step-over–調(diào)試器命令step-over(在GDB中是next)的作用是在同一度個(gè)調(diào)用棧層中移動(dòng)知到下一個(gè)可執(zhí)行的代碼行。如果當(dāng)前行是一個(gè)函數(shù)調(diào)用,則調(diào)試器將在函數(shù)調(diào)用之后的下一條語(yǔ)句停止道。調(diào)試器不會(huì)進(jìn)入函數(shù)體。如果當(dāng)前行是函數(shù)的最后一行,則step-over將進(jìn)入下一個(gè)棧層,并在調(diào)用函數(shù)的下一行停止。
step-out–調(diào)試器命令step-out(在GDB中是finish)的作用是在棧中前進(jìn)到下一層,并在調(diào)用函數(shù)的下一行停止。
引用文章:調(diào)試的時(shí)候step into,step out,step over有什么區(qū)別?各有什么作用?分別在什么情況下使用?
總結(jié)
以上是生活随笔為你收集整理的调试的时候step into,step out,step over有什么区别?各有什么作用?分别在什么情况下使用?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pycharm如何标记代码?创建代码标签
- 下一篇: python super()函数(用来调