gdb 中step,next與finish的區別


step 就是單步執行,遇到子函數就進入並且繼續單步執行;在其他調試其中相當於step-into命令,作用是移動到下一個可執行的代碼行。如果當前行是一個函數調用,則調試器進入函數並停止在函數體的第一行。step可以幫助初步揭開代碼位置的謎團,例如:函數調用和函數本身可能在不同的文件中。


next 是在單步執行時,在函數內遇到子函數時不會進入子函數內單步執行,而是將子函數整個執行完再停止,也就是把子函數整個作為一步。在其他調試器中相當於step-over,作用是在同一個調用棧層中移動到下一個可執行的代碼行。調試器不會進入函數體。如果當前行是函數的最后一行,則,next將進入下一個棧層,並在調用函數的下一行停止。


finish就是但單步執行到子函數內時,用step out就可以執行完子函數余下部分,並返回到上一層函數。在其他調試器中相當於step-out,作用是在棧中前進到到下一層,並在調用函數的下一行停止。

 

參考:http://blog.sina.com.cn/s/blog_74d0ff140101dfv6.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM