在ubuntu系統中配置MIPS除錯運行環境
- 安裝QEMU和GDB
- 安裝libraries
- 使用GDB除錯
注:系統環境為ubuntu 18.04.
安裝QEMU和GDB
QEMU是用于各種體系結構的仿真器,通常,它用于模擬整個PC(即運行虛擬機),對于除錯單個程式,這不是必需的,在Linux上,可以使用QEMU用戶空間仿真,
安裝qemu
$ sudo apt-get install qemu qemu-user qemu-user-static
此外,默認情況下為Ubuntu和類似作業系統安裝的GDB對其他體系結構一無所知,可以利用gdb-multiarch包
$ sudo apt-get install gdb-multiarch
binfmt可以使用該包查看檔案的型別,并自動呼叫正確的解釋器,在我們的例子中,它將看到您正在嘗試運行一個低端的MIPS(mipsel)二進制檔案并呼叫qemu-mipsel,
$ sudo apt-get install 'binfmt*'
安裝libraries
包含mipsel運行所選二進制檔案所需的所有庫的軟體包:
$ sudo apt-get install libc6-mipsel-cross # For MIPS-EL
構建程式,則需要交叉編譯器,
$ sudo apt-get install gcc-mipsel-linux-gnu
最后,我們需要binfmt確定mipsel二進制檔案在哪里,
$ sudo mkdir /etc/qemu-binfmt
$ sudo ln -s /usr/mipsel-linux-gnu /etc/qemu-binfmt/mipsel # MIPSEL
現在可以在系統上運行二進制檔案
效果:

使用GDB除錯
需要啟動qemu-mips以便公開GDB存根,然后從GDB連接
1.首先打開一個終端啟動qemu-mips
(12345是一個連接埠,可以使用任意)
qemu-mipsel -g 12345 ./bomb

2.打開另一個終端利用gdb-multiarch進行除錯
gdb-multiarch ./bomb

并依次輸入
(gdb) set arch mips
(gdb) set endian little
(gdb) target remote localhost:12345
這樣就可以繼續利用gdb除錯
一些關于phase_1除錯程序的demo:

設定斷點之后執行r命令后輸入continue,在另一個終端運行,此終端用來除錯,

繼續除錯:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/225942.html
標籤:其他
上一篇:HAProxy負載平衡集群
