Gdbserver arm için kaynak koddan derlemek

Hiç elle değiştirilmiş arm linux üzerinde debug yapmayı denediniz mi? ne apt var ne vim. Gdbserver nasıl yükleyeceksiniz?
Cevap arm-linux-gnueabi ile derlemek.Yalnız statik olarak bağlanmış olması ve yeterince küçük bir uygulama üretmesi elzem.
Her şeyden önce "arm-linux-gnueabi" araç serini yükleyin. Çok araç var hepsini yazamadım.
Gdb kendisi zaten çalıştığımız bilgisayar üzerinde yükleyip çalıştırabiliyoruz.
sudo apt-get install gdb-multiarch

yüklemenizi tavsiye ederim. Arm, Avr, x86, x64 tanıyor. Sıkıntı server yani cihaz tarafında olduğundan derlemeye başlayalım.

Derleme işlemi gnu configure dosyasıyla yapılıyor ve elle sorunu çözene kadar akla karayı seçiyorsunuz.
1. adım:
Gnu sitesinden gdb indirin. http://ftp.gnu.org/gnu/gdb/
2. adım:
dosyayı çıkarmak için bir dosya oluşturun ve oraya çıkarın. tar xf <gdb-a.b> /PATH
3. adım:
./../../../gdb/downloads/gdb-8.3/gdb/gdbserver/configure --prefix=/opt/gdb/arm-linux-gnueabi/native --host=arm-linux-gnueabi --target=arm-linux-gnueabi LD=arm-linux-gnueabi-ld CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ LDFLAGS=-static STRIP_FOR_TARGET=arm-linux-gnueabi-strip --enable-lto
NOT: Eğer derlendikten sonra "kernel is too old" hatası verirse --enable-kernel=<version> kernel versiyonunu yazarak komuta ekleyin.
4. adım:
make LDFLAGS=-static -j8

Bundan sonra hata verecek ama program debug verileriyle derlenmiş olacak. Fakat strip aracını dahil ederseniz gereksiz debug bilgisi silinebilir. Sağlamalamak üzere;
arm-linux-gnueabi-strip --strip-debug gdbserver çalıştırın.

http://blog.breakingiot.io/2015/08/compiling-staticly-linked-gdb-debugging.html
github repoları:
https://github.com/marcinguy/arm-gdb-static
https://github.com/therealsaumil/static-arm-bins
https://github.com/hugsy/gdb-static
https://github.com/lslx/arm-gdb-static

Yorumlar

Popüler Yayınlar