gdbserver移植使用

2021-07-27 16:32:08 字數 2018 閱讀 2601

gdbserver用法其實和gdb是一樣的

還要記住一點ubuntu12.04中預設的gdb和arm-linux-gdb是不一樣的。

linux板子:

gdbserver 192.168.1.108:2222 run.exeubuntu12.04機子:

arm-linux-gdb run.exe//如果不加run.exe會沒有symbol的

target remote 192.168.1.108:2222首先明白gdb是用來幹什麼

先試試gdb是用來幹什麼的,網上資料一大堆。參考:

gdbserver幹什麼的

-某些時候由於模擬環境的限制,除錯必須要在目標板上進行。由於嵌入式系統資源比較有限,一般不能在目標板上直接構建gdb的除錯環境,這時我們通常採用gdb+gdbserver的遠端除錯方法:gdbserver在目標板中執行,而gdb則在主機上執行。

-構建gdb+gdbserver除錯環境的在於,要將gdb和gdbserver都編譯成適用於目標板的版本。比如我們用x86的主機和arm目標板,平時在主機上直接除錯的時候都使用用於x86除錯的gdb,但這個gdb不能用於遠端除錯中,需要針對arm平台進行配置之後重新編譯才行;而gdbserver要執行在目標板上,則需要用arm-linux-gcc編譯才行。

參考:保證arm-linux-gcc和gdbserver版本能相容,能對得上號

編譯gdb或者執行gdbserver 192.168.1.108:2222 run.exe

出現錯誤:gdbserver libthread_db.so.1: cannot open shared object file: no such file or directory

原因: 在linux的板子上沒有gdbserver用到的動態庫libthread_db.so.1 。

解決:我們會想linux板子所用的動態庫會在什麼地方呢?在交叉編譯工具的arm-linux中去找,注意動態庫一般是鏈結ln。將該庫cp到linux板子的/lib目錄下cp libthread_db-1.0.so /lib,然後ln -s libthread_db-1.0.so libthread_db.so.1想辦法將gdbserver複製到linux板子上,可以用scp,ftp,tftp等

linux板子:

gdbserver 192.168.1.108:2222 run.exeubuntu12.04機子:

arm-linux-gdb run.exe//如果不加run.exe會沒有symbol的

target remote 192.168.1.108:2222

或者:

#!/bin/bash

/mnt/extdisk1/gcc-linaro-5.4.1-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb \

-ex "target remote 192.168.7.69:2222" \

./lws-minimal-ws-server

假如執行的是arm-linux-gdb的話並不會出現錯誤,但是沒有symbol的,也就不能設定斷點

./configure --host --target

build: 執行**編譯的主機,正常的話就是你的主機系統。這個引數一般由config.guess來猜就可以。當然自己指定也可以。

host: 編譯出來的二進位制程式所執行的主機,因為絕大多數是如果本機編譯,本機執行。所以這個值就等於build。只有交叉編譯的時候(也就是本機編譯,其他系統機器執行)才會build和host不同。用host指定執行主機。

target: 這個選項只有在建立交叉編譯環境的時候用到,正常編譯和交叉編譯都不會用到。他用build主機上的編譯器,編譯乙個新的編譯器(binutils, gcc,gdb等),這個新的編譯器將來編譯出來的其他程式將執行在target指定的系統上。

學習筆記 使用gdbserver

在micro2440上測試通過,作此文筆記。gdb 6.6.tar.bz2。2 解壓gdb原始碼 比如我的原始碼壓縮包路徑是 home nzq arm rd gdb 6.6.tar.gz cd home nzq arm rd tar vxfz gdb 6.6.tar.gz c src 解壓到.scr...

ARM 交叉編譯 使用gdbserver

1,編譯gdb過程中需要使用texinfo,先安裝texinfo sudo apt get install texinfo 2,解壓配置編譯 arm linux gnueabihf端 host arm linux gnueabihf windows host不用配置,預設即可 configure t...

交叉編譯gdbserver

這才是正宗的,那些git,googlesource,映象,甚至什麼補丁,指令碼等全見鬼去吧。這麼簡單的事為什麼搞那麼複雜呢?裝xx?歷史?tar xzvf gdb 7.11.tar.gz 這才是正宗 包含gdb和gdbserver 1.編譯gdb cd gdb 7.11 configure targ...