使用gdb单步调试

2917阅读 0评论2012-12-12 hk2305621
分类:

7、使用gdb单步调试
假设目标板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自动退出
上一篇:体验开机之旅
下一篇:Ubuntu利用Samba映射磁盘到Win7