下面用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 命令从断点执行程序