交叉编译与调试!!!

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交叉编译与调试方法

一、交叉编译

1. 建立工作目录

2. 编写源代码

3. 编写makefile文件

4. 编译应用程序

#arm-linux-gcc -g hello.c -o hello

5. 启动NSF,挂载共享文件目录

将光盘中的gdbserver与gdb程序拷贝到共享目录

二、调试步骤

1、在Target Board开启gdbserver

进入共享目录

#gdbserver :2345 hello (我的host-ip是192.168.0.178)

gdbserver开始监听2345端口(你也可以设其他的值),然后启动hello,你会看到“Process test created:pid=88”

2、回到Host端

添加环境变量

#export PATH=$PATH:/home/cby/arm-gdb/bin(arm-linux-gdb的路径)

调试

#arm-linux-gdb hello

最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target =arm-linux”...

说明此gdb在X86的Host上运行,但是调试目标是ARM代码。

(gdb)target remote :2345 (我的target-board-ip is 192.168.0.105)

注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。

建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。

注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver 启动了。结果输出是在Target Board端,用超级终端查看。

4. 交叉调试

(gdb)list

(gdb)break func

(gdb)break 22

(gdb)info br

(gdb)c

(这里不能用run)

(gdb) n

(gdb) p result

(gdb) finish

(跳出func 函数)

(gdb) next

(gdb) quit

建立连接后进行gdb 远程调试和gdb 本地调试方法相同

相关文档
最新文档