百度首页 | 百度空间
 
查看文章
 
用gdb远程调试arm嵌入式设备程序
2006-12-27 18:33

2.编译程序调试版本
修改编译标志,加上-g参数
3.生成调试信息文件
arm-linux-objcopy -only-keep-debug xxx xxx.debug
其中xxx表示调试对象(so文件或可执行文件,以下同)

4.去掉调试对象的debug信息
这样可以减小对象尺寸
arm-linux-objcopy –strip-debug xxx

5.在调试对象加入debug段
arm-linux-objcopy –add-gnu-debuglink=xxx.debug

6.如果要调试.so,记录调试信息偏移量
arm-linux-objdump -h|grep text
记录偏移量(第3个字段)

6.在设备上运行调试对象

7.用ps命令取得调试对象进程pid

8.用cat /proc/pid/maps获得调试对象的内存映射
如果调试可执行程序如qpe,此步骤可省略
如果调试.so, 记录下.so的起始地址

9.在设备端运行gdbserver
gdbserver.static 192.168.0.3:xxxx –attach xxx
                   |          |             |
                  主机IP   调试端口        pid

10.在主机端运行arm-linux-gdb

11.在gdb提示符下,如果调试可执行程序
输入symbol-file xxx.debug
如果调试.so
输入add-sybmbol-file xxx 内存映射地址+偏移量

12.用directory命令设置源代码目录

13. target remote 设备IP:调试端口
如果一切正确,将中断调试对象的运行,出现断点提示
这样就可以运行gdb的各项命令调试程序了

参考资料:
http://sources.redhat.com/gdb/current/onlinedocs/gdb_toc.html  非常详尽的gdb参考手册 


类别:技术文章 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu