zoukankan      html  css  js  c++  java
  • 嵌入式Linux之gdb配置和使用

    背景:

    ARM Cortext-A53核+Linux 4.1.12,内核空间64位,用户态32位,gdb版本7.10.1

    GDB编译:

    1)手动下载gdb-7.10.1.tar.gz源码编译

    ./configure --host=arm-buildroot-linux-gnueabi --target=arm-buildroot-linux-gnueabi CC=/opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.24-binutils-2.25/usr/bin/arm-buildroot-linux-gnueabi-gcc AR=/opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.24-binutils-2.25/usr/bin/arm-buildroot-linux-gnueabi-ar --prefix=<output path>
    make
    make install
    标准的三步编译
     
     
    目标板内置gdb
     
    GDB Server
    1.开发板编译
    ./configure --host=arm-buildroot-linux-gnueabi --target=arm-buildroot-linux-gnueabi --prefix CC=/opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/bin/arm-buildroot-linux-gnueabi-gcc AR=/opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/bin/arm-buildroot-linux-gnueabi-ar
    2.主机端(192.168.1.251)
    /opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/bin/arm-buildroot-linux-gnueabi-gdb
    target remote 192.168.1.108:3325
    set sysroot /opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/arm-buildroot-linux-gnueabi/sysroot
    3.设备端(192.168.1.108)
    ./gdbserver 192.168.1.251:3325

    (gdb) run

    Starting program: /usr/local/test

    warning: Unable to fetch general register.

    PC register is not available

    -----ptrace(PTRACE_GETREGSET)失败

    (gdb) set libthread-db-search-path
    (gdb) set auto-load libthread-db [on|off]
    (gdb) info auto-load libthread-db
              No auto-loaded libthread-db.
    (gdb) show auto-load libthread-db
              Auto-loading of inferior specific libthread_db is on.

    /lib/libthread_db.so.1软链接指向/lib/libthread_db-1.0.so

    如果缺少该库,报错如下:

    warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.

    同时,要保证该库没有被strip过,因为需要nptl_version符号,否则会报错:

    Unable to find libthread_db matching inferior's thread library, ...

    (gdb) run        
    Starting program: /usr/local/test 
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/libthread_db.so.1".
    Cannot find user-level thread for LWP 130: generic error

  • 相关阅读:
    2020-04-07 python一行代码 http服务器文件共享
    2020-04-06 linux命令之awk
    2020-04-05 ubuntu安装docker并使用国内加速
    2020-04-04 ssh免密登录
    尚学堂 JAVA DAY11 概念总结
    尚学堂 JAVA Day3 概念总结
    尚学堂 JAVA Day1 概念总结
    Android Studio 首次安装报错 Java.lang.RuntimeException:java.lang.NullPointerException...错
    Android 迷之Version管理
    Android Develop 之 Ddevelop WorkFlow Basics
  • 原文地址:https://www.cnblogs.com/justin-y-lin/p/9928852.html
Copyright © 2011-2022 走看看