zoukankan      html  css  js  c++  java
  • arm-linux-gdb+gdbserver环境搭建以及远程调试

    0) gdb源码下载:http://ftp.gnu.org/gnu/gdb/

    1) 编译arm-linux-gdb

        指定交叉编译工具链的位置

        export PATH=$PATH:/usr/local/arm/3.4.1/bin
        开始配置和编译

        $cd gdb-6.6
        $./configure --target=arm-linux --prefix=/usr/local/arm/gdb -v
       $make
       

    中间会出现一些地方编译过去,如

    gdb declared with attribute warn_unused_result

     检查了下,发现是由于检查太严格了,把 Makefile 里面 -Wall 类似的强制警告检查都去掉就可以过了

    2) 编译gdbserver
        $cd gdb/gdbserver
        $./configure --target=arm-linux --host=arm-linux
          target含义同前,host指明编译生成的gdbserver运行在arm-linux上,前者没有设定host的原因是
          arm-linux-gdb是在pc linux上运行的,就像arm-linux-gcc (很好理解的:))
        $
    make CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc

     

       #gdbserver 192.168.1.200:7777 test
         Process test created; pid                                                                                   
         Listening on port 7777

       主机shell下
       $cd ~/tftpboot
       $arm-linux-gdb test
        GNU gdb 6.6 
        Copyright (C) 2006 Free Software Foundation, Inc.
        GDB is free software, covered by the GNU General Public License, and you are
        welcome to change it and/or distribute copies of it under certain conditions.
        Type "show copying" to see the conditions.
        There is absolutely no warranty for GDB. Type "show warranty" for details.
        This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-linux"...
        (gdb)
        注意一下显示信息的最后--host=i686-pc-linux-gnu --target=arm-linux,明白了吧。。。
        target remote 192.168.1.168:7777   --连接gdbserver
        Remote debugging using 192.168.1.168:7777
        0x40000dd0 in _start () from /lib/ld-linux.so.2
        表示连接上了服务器,:),接下来就可以调试了。arm-linux-gdb和GDB的用法一样,只是没有r这个命   
       令,运行程序用c命令。
        (gdb) l
       1       #include<stdio.h>
       2
       3       int main()
       4       {
       5               char *ptr = "csdn";
       6               printf("%c/n",*(ptr++));
       7               return 0;
       8       }
        (gdb) b 3
       Breakpoint 1 at 0x83d0: file test.c, line 3.

       另外由于程序是在目标板上运行,调试是在PC下,程序的结果还是会在目标板上显示的, 
       例如:minicom,lcd等。
       btw,附近一篇介绍GDB使用的文章:http://blog.csdn.net/haoel/archive/2003/07.aspx,这下全了吧。哈

  • 相关阅读:
    $BZOJ4318$
    国庆集训——10.5
    [学习笔记]线段树分治
    数学基础——组合数学
    实验吧:首页>决斗场>训练题库>CTF题库>传统知识+古典密码
    实验吧:首页>决斗场>训练题库>CTF题库>变异凯撒
    实验吧:首页>决斗场>训练题库>CTF题库>杯酒人生
    南京邮电大学网络攻防训练平台:密码学:KeyBoard
    南京邮电大学网络攻防训练平台:密码学:easy!
    实验吧:首页>决斗场>训练题库>CTF题库>困在栅栏里的凯撒
  • 原文地址:https://www.cnblogs.com/lidabo/p/4497876.html
Copyright © 2011-2022 走看看