Modern linux'da neredeyse tüm nesneler iki parçadan (iki dosya) ayrılır ve ayrılır. Birincisi, yürütülebilir dosyanın kendisi ve ikincisi, orijinal ELF'den çıkarılmış semboller. Bu tür dosyalar Ben hata ayıklama bilgisi ile ELF dosyaya binary
ve binary.dbg
birleştirme nasılNesnenin şeridini yalnızca tutmak için hata ayıklaması nasıl tersine çevrilir?
objcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary
ile oluşturulur? Tahrifsiz, orijinal ikiliyi yeniden oluşturmak istiyorum. Orijinaline eşit byte-byte byte olmayabilir, ancak içinde bir hata ayıklama sembollerinin bulunması gerekir.
Evet, yaklaşık gnu.debuglink
bölüm biliyorum PS, ancak (objdump semboller bilgi geri yükleyemezsiniz) ELF için
Doküman var: http://www.linuxfromscratch.org/blfs/view/svn/general/elfutils.html "*' eu- unstrip' soyulmuş dosyaları ayrı sembollerle ve hata ayıklama bilgisiyle birleştirir. * "ve bu sayfa https://fedorahosted.org/elfutils/ ve bu kaynak https://git.fedorahosted.org/cgit/elfutils.git/tree/ src/unstrip.c "Ayrılmış semboller ve hata ayıklama bilgileri ile soyulmuş dosyaları birleştirin. Telif Hakkı (C) 2007-2012, 2014, 2015 Red Hat, Inc ... Roland McGrath". Eğer normal programlanmış ELF olarak "program.bin", ve sadece hata ayıklama bilgisi içeren "program.dbg" varsa, "eu-unstrip" i nasıl başlatmalıyım ve hangi dosya değiştirilmeli? – osgx
Kullanımıma bağlı olarak, ikiliyi hata ayıklama sembollerine birleştirir. Eğer program.dbg ve program.bin varsa, 'eu-unstrip program.bin program.dbg', bini dbg dosyasına birleştirir. Paramizi tersine çevirmek hata verir. – lyngvi
Elfutillere erişimim yok ama sadece binutils. Objcopy --add-section veya benzeri kullanarak yapmak mümkün mü? – sunil