交叉編譯gdbserver

2021-07-23 13:01:59 字數 1187 閱讀 2637

這才是正宗的, 那些git, googlesource, 映象,甚至什麼補丁,指令碼等全見鬼去吧。

這麼簡單的事為什麼搞那麼複雜呢?裝xx? 歷史?

tar -xzvf gdb-7.11.tar.gz , 這才是正宗**,包含gdb和gdbserver

1. 編譯gdb

cd gdb-7.11

./configure --target=arm-linux-androideabi --prefix=/usr/local/gdb/gdb-7.11/arm-linux

make

make install

2.交叉編譯gdbserver

cd gdb-7.11/gdb/gdbsever

./configure --target=arm-linux-androideabi --host=arm-linux-androideabi --prefix=/usr/local/gdbserver/gdb-7.11/arm-linux

make

make install

gdbserver 編譯遇到兩個錯誤,乙個是找不到stdio_ext.h, 簡單注釋掉該行。

還有乙個是函式衝突, 說某c檔案的函式定義與乙個標頭檔案中的定義衝突。

但是我看了c 中定義的是static, 按說不算衝突。 先簡單把頭檔案中的注釋掉,編譯通過。

用ida+gdbserver 除錯應用程式

gdbserver 與 ida-pro 配合除錯, 一定不要用gdbserver 直接載入應用, 而應該空啟動gdbserver,舉例如下:

gdbserver --multi 192.168.150.1:23946

ida 會對檔案分析和應用簽名及type,這樣連線上可以看到ida 分析後的檔案,

否則就是兩眼一抹黑。

第二個好處, 除錯完成後可以第二次載入應用。 不用重啟gdb.

為了保留第一次的分析結果,你應該take a snapshot, 選擇loader segment 即可, 然後

就可以很方便的,快速的重新啟動程式。

而用gdb載入,, 除錯完成後,gdb 雖然重啟了,但它卻沒有重啟應用。所以,除錯完後還要殺掉gdb,重新啟動gdb載入

可惜儲存資料庫就有些問題,因為資料庫是4g虛擬空間,現在要做實,所以不用儲存資料庫,可以只提取裡面手工新增過的符號資訊等。

用ida+gdbserver 除錯so 程式。

交叉編譯gdb與gdbserver

一 編譯gdb 543 cd home rock pkg gdb 7.3.1 544 mkdir build 553 configure host i686 pc linux gnu target arm linux prefix home rock pkg gdb 7.3.1 build 554 ...

ARM 交叉編譯 使用gdbserver

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

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...