
GDB(GNU Debugger)是調試的程一個(gè)功能強大的(??ヮ?)?*:???程(′?`*)序調試工具,它可以幫助開(kāi)發(fā)者在Linux系統中對程序進(jìn)行調試,運行GDB支持多種編程語(yǔ)言,調試的程ヽ(′▽?zhuān)?ノ如C、運行C++、調試的程Java(′_`)等,運行可以對程序的調試的程編譯、鏈接、運行運行等各個(gè)階段進(jìn)行調試,調試的程通過(guò)GDB,運行開(kāi)發(fā)者可以在程序出錯時(shí)定位問(wèn)題,查看變量值,調試的程修改代碼等。運?行
在Linux系統中,調試的程(′?_?`)可以使用(yong)以下命令安裝GDB:
sudo apt-get install gdb
1、運行啟動(dòng)GDB
要使用GDB調試程序,調試的程首先需要啟動(dòng)GDB,通常情況下,可以通過(guò)以下命令啟動(dòng)GDB:
gdb 文件名
要調試名為example的程序,可以(yi)使用以(yi)下命令:
gdb example
2、設置斷點(diǎn)
在GDB中,可以使用break命令設置斷點(diǎn),(╯°□°)╯︵ ┻━┻要在名為main的函數處設(′?_?`)置斷點(diǎn),可以使用以下命令:
brea(′?`)k main
還(′?`*)可以使用行號設置??斷點(diǎn),
b?reak 103、運行程序
在設置好斷點(diǎn)后,可以使用run命令運行程序:
run
當程序運行ヽ(′?`)ノ到斷點(diǎn)處時(shí),會(huì )自動(dòng)暫停,此時(shí)┐(′?`)┌可以(°ロ°) !使用以下命令查看當前的變量值:
print variable_name:打印變量的值;
list:列出當前作用域內的所有變量;
info locals和info args??:分別顯示局部變量和函數參數的信息;
watch variable( ?ヮ?)_name:監視變量的變化,當變量值發(fā)生變化時(shí),會(huì )自動(dòng)更新并打印新的值。
在GDB中,可以使用以下命令進(jìn)行單步執行或跳過(guò)語(yǔ)句:
ne??xt或n:執行下一行代碼;
step或s:執行下一行代碼,如果是函數調用,則進(jìn)入函數內部;
finish或f:執行完當前函數的所有代碼行。
5、退出GDB
在完成調試后,可以使用以下命令退出GDB:
quit:退出GDB;
exit或e:從當前shell環(huán)境中退出GDB。
1、GDB如何查看源代碼?
答:list命令可以查看源代碼,在GDB中輸入list,然后回車(chē),即可查看當前作用域內的(de)源代碼,如果想查看其他作用域的源代碼,可以使用frame n命令切換到指定的棧幀,然后再使用list命??令查看源代碼,要查看棧幀為2的源代碼??,可以先輸入frame 2,然后回車(chē)。
2、GDB如何查看變量類(lèi)型的?
答:prin(╥_╥)t type variable_name命令可以查看變量的類(lèi)型,在GDB中輸入該命令,然后回車(chē),即可查看指定變量的類(lèi)型,如果想查看所有變量的類(lèi)型,可以使用info locals或info args命令,要查看局部變量的類(lèi)型(′ω`),可以輸入info locals,然后回車(chē),要查看函數參數的類(lèi)型,可以輸入info args,然后回車(chē)。