嵌入式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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM