下面用hello.c程序為例,說明調試過程。
編譯程序的時候要添加調試信息,如下命令行所示:
$ arm -linux-gcc -g –o hello hello.c
注意: 當目標板上使用一個精簡的二進制文件時,主機上必須是一個帶調試信息的便於符號調試的二進制文件。
使用GDB調試過程:
1) 在目標板上,啟動gdbserver,調試hello程序
# ./gdbserver <host>:2345 hello
2345是網絡端口號,服務器在這個端口上等待客戶端的連接,這個值可以是任何目標板上可用的端口號。hello是調試程序名,還可以添加程序運行的參數。<host>是主機名稱或者IP地址。
控制台輸出下面類似的顯示:
Process hello created; pid = 38
2) 在主機上,改變目錄到hello程序目錄下,執行下面命令:
$ arm -linux-gdb hello
3) 在GDB命令提示下,執行下面命令:
(gdb)target remote <target>:2345
<target>是目標板名稱或者IP地址,端口是2345。這個命令結果是在目標板端顯示:
Remote debugging using 192.168.1.1:2345
現在就可以使用GDB的命令調試了。
4) 輸入命令b main,在main函數設置斷點。
list //顯示源文件(C程序)
b 6 //在第6行設置斷點
5)輸入c 命令執行程序
繼續 輸入c 命令從斷點執行程序