DWARF biçimindeki ELF dosyası hata ayıklama bilgilerini okumak için iyi bir çapraz platform kitaplığı için herhangi bir öneriniz var mı? Bir Python programında DWARF hata ayıklama bilgisini okumak isterim.Kitap ELF dosyası okunacak DWARF hata ayıklama bilgisi
cevap
blok yeni çocuk var - pyelftools - ELF ve CÜCE biçimleri ayrıştırmak için bir saf Python kütüphanesine. Bir şans ver.
Bu özellik tam olmayı hedefleyen ve aktif gelişme şu anda, bu nedenle herhangi bir sorun aracı rec olarak kapatmak için
"ELF hata ayıklama bilgisi" kavramı gerçekten mevcut değil: ELF belirtimi kasten belirtilmemiş .debug bölümünün içeriğini bırakır.
Sık rastlanan hata ayıklama biçimleri STAB ve DWARF'dur. DWARF okumak için bir kütüphane libdwarf olduğunu.
Evet, oldukça doğru. DWARF, ilgimi çekiyor. –
Soruyu buna göre güncelledim. –
Libdwarf çapraz platform mu, biliyor musunuz? Sayfa söylenmez, ancak genel Unix lezzetine sahip gibi görünüyor. –
Burada yararlı bilgiler bulabilirsiniz: CÜCE hata ayıklama bilgilerini okumak için
Teşekkürler, diğer SO sorusunu kaçırdım, sanırım "DWARF" için aramadım. Bu sorunun başlığını güncelleyeceğim. –
Seçenekleriniz maalesef oldukça sınırlıdır.
Bildiğim kadarıyla DWARF hata ayıklama bilgilerini ayrıştırmak için tek bir genel kullanım kitaplığı var ve bu da libdwarf. Ne yazık ki hiç kimse libdwarf için Python bağlamaları yazmamış (belki de kendi başınıza alabilir ve herkesle paylaşabilirsiniz :)) ctypes veya Python C API kullanarak kütüphane işlevlerine kesinlikle erişebilirsiniz. Bununla birlikte, daha az zarif bir çözüm, mevcut bir DWARF ayrıştırıcısını kullanmak ve çıktıları olan metin bilgilerini ayrıştırmaktır. (Linux üzerinde) bu seçenekleriniz Şu anda readelf kapalı oluşturur bir proje kullanmak
objdump -W
readelf --debug-dump=[OPTIONS]
vardır ve çok dolu özellikli CÜCE ayıklama bilgisi için destek var. Kabuktaki komutu çalıştırmak için Python'u kullanabilir ve daha sonra bilgileri istediğiniz gibi ayrıştırabilirsiniz. Kesinlikle bir kütüphane kadar ideal değil, ama hile yapmalı.
DÜZENLEME: Bir önceki yorumda Windows'dan bahsettiğinizi fark ettim. Bu programların her ikisi de (objdump ve readelf) GNU-binutillerin bir parçasıdır, bu yüzden Cygwin veya mingw ile kullanılabilir olmalıdır.
da "cüce çöplüğü" var. – hochl
Sen pydevtools gelen CÜCE kütüphanede ilginizi çekebilir:
>>> from devtools.dwarf import DWARF
>>> dwarf = DWARF('test/test')
>>> dwarf.get_loc_by_addr(0x8048475)
('/home/emilmont/Workspace/dbg/test/main.c', 36, 0)
>>> print dwarf
.debug_info
COMPILE_UNIT<header overall offset = 0>
<0><11> compile_unit
producer: GNU C 4.4.3
language: C89
name: a/test.c
comp_dir: /home/emilmont/Workspace/dbg/test
low_pc: 0x080483e4
high_pc: 0x08048410
stmt_list: 0
[...]
Bunu bilmek harika. Birkaç soru: 1) Hangi platformlar destekleniyor (Windows, Linux)? 2) [PyPI] 'ye (http://pypi.python.org/pypi) koyabilir misiniz? –
PyPI'de: http://pypi.python.org/pypi/BinTools/0.1.0 – emilmont
Harika! Belgeler desteklenen platformlardan bahsetmiyor. Windows üzerinde çalışıyor mu? –
- 1. Mac OSX'te DWARF dosyası okuma
- 2. Yüklenebilir çekirdek modülleri için hata ayıklama bilgisi
- 3. DLR - Neden stacktrace'de hata ayıklama bilgisi gösterilmiyor?
- 4. "Sınırlı Hata Ayıklama Bilgisi" ve "Hata Ayıklama Bilgileri" ile Delphi XE5 derleme ayarında
- 5. Bu hata ne demek: geçersiz ELF başlığı
- 6. Kapacitor için tick script geliştirirken hata ayıklama bilgisi nasıl alınır?
- 7. Firefox'taki hata ayıklama hata ayıklama
- 8. DWARF bilgilerinden çağrıları çağırma
- 9. Kitap bilgisi almak için hangi Amazon REST API'sini kullanıyorum?
- 10. Hata ayıklama, sürüm
- 11. Django - Django hata sayfasında DatabaseError "mevcut işlem iptal edildi" hata ayıklama bilgisi nasıl alınır?
- 12. ASP.Net Core, bir hata ayıklayıcıda hata ayıklama değil hata ayıklama
- 13. ELF nesne dosyası ile paylaşılan nesne arasındaki ELF başlık farkları nelerdir?
- 14. Android Studio Hata Ayıklama İzleme bölmesi eksik
- 15. Hata ayıklama karşılık gelen javascript dosyası, VS Code
- 16. Hata ayıklama meta verileri dahil edildiğinde .class dosyası nasıl bilinir?
- 17. Uygulamayı hata ayıklama olarak ayarlamak için hangi grapt dosyası kullanılır?
- 18. Hata ayıklama C++ dll C#
- 19. IOS-xcode 7, dış kütüphanede hata ayıklama
- 20. Hata ayıklama üzerinde uygulama, hata ayıklama sırasında değil
- 21. Eclipse kısayolu "hata ayıklama son hata ayıklama yapılandırması" (F11 değil)
- 22. Eclipse Java Hata ayıklama dosyaları ile hata ayıklama
- 23. Eksik LSB Bilgisi (Başlangıç Kabuğu Komut Dosyası)
- 24. Hata ayıklama Ember.js'den chrome
- 25. Win32 Hata Ayıklama Makroları
- 26. Hata ayıklama Java yöntemi
- 27. Xcode C++ hata ayıklama
- 28. Hata ayıklama döngüleri
- 29. Hata ayıklama 403'ler?
- 30. Hata ayıklama metaprogramları
Oy :-) hızlı ve şevkle ele alınmalıdır. –