假设目标板IP地址为:169.254.132.5,PC机IP地址为:169.254.132.6
(1) 将hello/gdbserver/libthread_db-1.0.so文件复制到目标板中(位于
gcc-arm920t\gcc-3.4.1-glibc-2.3.2\arm-linux\bin和
gcc-arm920t\gcc-3.4.1-glibc-2.3.2\arm-linux\arm-linux\lib)
在目标板中建立libthread_db.so链接:
ln -sf libthread_db-1.0.so libthread_db.so
(2) 启动gdbserver服务
则在目标板执行命令./gdbserver 169.254.132.6:2345 hello
其中169.254.132.5是目标板IP地址,2345是自己指定的端口号
(3) 使用arm-linux-gdb调试
在cygwin下执行以下命令:
a)arm-linux-gdb hello
进入gdb调试环境
b)l
显示源码
1 #include
2 #include
3 static long x = LONG_MIN;
4 int main() {
5 float myValueA=1.9;
6 float myValueB=2.8;
7 printf("Hello! LONG_MIN is %ld, PATH_MAX is %d\n", x, PATH_MAX);
8 printf("TestValue:%f\n",myValueA+myValueB);
9 return 0;
10 }
c)b 9
在第9行设置断点
d)info break
查看断点设置情况
e)target remote 169.254.132.5:2345
显示如下信息
Remote debugging using 169.254.132.5:2345
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
0x410016b0 in ?? ()
f)c
执行程序,并在设置的断点停下,注意这里不能用r命令
g)p myValueA
显示$1 = 1.89999998
h)quit
退出gdb调试环境,此时目标板上gdbserver自动退出