您的位置:首页 > 运维架构 > Linux

在嵌入式Linux下交叉调试应用程序

2013-01-06 23:36 274 查看
下面用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 命令从断点执行程序

http://www.linuxidc.com/Linux/2008-01/10461.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: