arm-linux-gdb与gdbserver
2015-08-19 14:44
561 查看
1、arm-linux-gcc
每一种硬件都有其对应的最好的编译工具,并不是最新的最好。其实思想很简单,就是在宿主机(PC)上编译目标板子上运行的程序。所以工具链要用目标板的,这样去编译生成可执行的二进制文件。这里有一个工具制作工具链,http://www.kegel.com/crosstool/。虽然它可以自动下,还是先下好吧自己,那个速度,呵呵。
2、arm-linux-gdb
(1)到http://www.gnu.org/software/gdb/download/下载gdb包,这个没有要求,因为它是个软件,只要用对的工具链编译就OK了。
(2)在本机安装arm-linux-gdb客户端。
#tar jxvf gdb-7.2-tar-bz2
#cd gdb-7.2
#./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v(--target配置gdb的目标平台,--prefix配置安装路径)
#make
#make install
这样arm-linux-gdb的客户端就安装到了--prefix所配置安装路径里。
(3)在目标板上安装gdbserver。(其实就是在宿主机编好了复制过去)
#cd gdb-7.2/gdb/gdbserver
#./configure --target=arm-linux --host=arm-linux(--target=arm-linux表示目标平台,--host表示主机端运行的是arm-linux-gdb,不需要配置—prefix,因为gdbserver不在主机端安装运行)
#make CC=/usr/local/arm-linux-gcc-3.4.1/bin/arm-linux-gcc
把生成的 gdbserver 拷贝进目标板,一般在/usr/bin
(4)arm-linux-gdb + gdbserver 调试。
编译要调试的程序 #arm-linux-gcc -g hello.c -o hello
在目标板运行 #gdbserver 10.88.33.14:777 hello (#gdbserver 客户端IP地址:端口 调试的程序名)
在客户机运行 #arm-linux-gdb hello (我都是在同一个目录里进行的,即mount到目标板的那个目录)
(gdb) target remote 10.88.33.1:777 (target remote 目标板IP地址:端口)
这样就可以调试了,结果会在目标版上显示出,这里用的minicom。输入run是会可能提示The
"remote" target does not support "run".Try "help target" or "continue".那就用continue吧。
Enjoy!
原文地址:http://blog.163.com/fuhaocn@126/blog/static/36665080201121710240720/
每一种硬件都有其对应的最好的编译工具,并不是最新的最好。其实思想很简单,就是在宿主机(PC)上编译目标板子上运行的程序。所以工具链要用目标板的,这样去编译生成可执行的二进制文件。这里有一个工具制作工具链,http://www.kegel.com/crosstool/。虽然它可以自动下,还是先下好吧自己,那个速度,呵呵。
2、arm-linux-gdb
(1)到http://www.gnu.org/software/gdb/download/下载gdb包,这个没有要求,因为它是个软件,只要用对的工具链编译就OK了。
(2)在本机安装arm-linux-gdb客户端。
#tar jxvf gdb-7.2-tar-bz2
#cd gdb-7.2
#./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v(--target配置gdb的目标平台,--prefix配置安装路径)
#make
#make install
这样arm-linux-gdb的客户端就安装到了--prefix所配置安装路径里。
(3)在目标板上安装gdbserver。(其实就是在宿主机编好了复制过去)
#cd gdb-7.2/gdb/gdbserver
#./configure --target=arm-linux --host=arm-linux(--target=arm-linux表示目标平台,--host表示主机端运行的是arm-linux-gdb,不需要配置—prefix,因为gdbserver不在主机端安装运行)
#make CC=/usr/local/arm-linux-gcc-3.4.1/bin/arm-linux-gcc
把生成的 gdbserver 拷贝进目标板,一般在/usr/bin
(4)arm-linux-gdb + gdbserver 调试。
编译要调试的程序 #arm-linux-gcc -g hello.c -o hello
在目标板运行 #gdbserver 10.88.33.14:777 hello (#gdbserver 客户端IP地址:端口 调试的程序名)
在客户机运行 #arm-linux-gdb hello (我都是在同一个目录里进行的,即mount到目标板的那个目录)
(gdb) target remote 10.88.33.1:777 (target remote 目标板IP地址:端口)
这样就可以调试了,结果会在目标版上显示出,这里用的minicom。输入run是会可能提示The
"remote" target does not support "run".Try "help target" or "continue".那就用continue吧。
Enjoy!
原文地址:http://blog.163.com/fuhaocn@126/blog/static/36665080201121710240720/
相关文章推荐
- Linux socket 初步
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- Linux VS Unix:Linux欲一统天下 Unix不死
- linux下设定环境变量
- Linux下修改MySQL编码的方法