我编译gdb和gdbserver是参照以下文章做的当中编译的时候遇到了三类主要错误:
错误1:
./configure 是的错误,这一类错误主要是主机上面缺少软件和库导致,一次安装相应的库和软件即可
错误2:
make 时的错误, 主要是编译错误。找出错误代码修改即可。这一类代码错误通常都是很简单的错误,由于作者用的源码编译器或者编译器一样但编译器编译配置不一样导致(主要是两类错误:1.变量未初始化错误 2. 函数返回值未处理错误)
错误3:
在编译gdb server 的时候总是有错误:
解决方案:需要再gdb-server 下makeclearn 在重新./configure一下
主机和开发板调试连接通讯设置:
开发板端----
[root@FriendlyARM hello]# ../gdbserver 10.11.11.101:7777 hello
../gdbserver --编译好的GDBserver
10.11.11.101 --主机ip地址
hello -- 编译的可执行程序
pc端----
首先运行arm-linux-gdb
在arm-linux-gdb 输入target remote 10.11.11.230:7777
10.11.11.230 --开发板IP
7777 通讯所用端口号
本文系本站原创,欢迎转载!
然后下载到目标板即可,运行的时候会出问题,会说libthread_db.so.1找不到,这时可以在/usr/local/arm/3.4.1/arm-linux/lib将这个文件下载到
目标板上去即可,一般放到/lib目录,如果你放到其他目录,要将其加到LD_LIBRARY_PATH环境变量里。
5.调试
1.使用gdbserver
在目标板上运行gdbserver
在目标板上执行
#./gdbserver 192.168.1.230:7777 hello
其中192.168.1.230为目标板的IP。7777为gdbserver打开的端口,可以自己设置。
2. 运行gdb客户端
jimmy@jimmy-linux:/mnt/nfs/bin$ arm-linux-gdb hello
GNU gdb 6.6
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-linux"...
(gdb) target remote 192.168.1.230:7777
Remote debugging using 192.168.1.230:7777
0x40000dd0 in ?? () from /lib/ld-linux.so.2
(gdb) b main
Breakpoint 1 at 0x84a0: file hello.c, line 3.
(gdb) l
1 #include<stdio.h>
2 int main(){
3 int i=0;
4 i++;
5 printf("%d\n",i);
6 }
(gdb) b main
Breakpoint 1 at 0x84a0: file hello.c, line 3.
(gdb) c
Continuing.
Breakpoint 1, main () at hello.c:3
3 int i=0;
(gdb) n
4 i++;
(gdb) n
5 printf("%d\n",i);
(gdb)