ELFファイルのデバッグ情報をDWARF形式で読み込むための優れたクロスプラットフォームライブラリの推奨事項はありますか?私はPythonプログラムでDWARFデバッグ情報を読んでみたいと思います。ELFファイルの読み込みライブラリDWARFのデバッグ情報
答えて
新顔あります - pyelftools - 純粋なPythonライブラリは、ELFとDWARFフォーマットを解析します。試してみる。
それは、その機能が完全なものとなることを目指して、アクティブな現在開発中ですので、何か問題がツールRECとしてクローズする
あなたはここに便利な情報を見つけるかもしれない:DWARFデバッグ情報を読み取るための
ありがとう、私は "DWARF"を検索していなかったので、他のSOの質問を逃しました。この質問のタイトルを更新します。 –
あなたのオプションは、残念ながら非常に限られています。
私が知る限り、DWARFデバッグ情報を解析するための汎用ライブラリは1つしかなく、libdwarfです。残念ながら誰もlibdwarf用のPythonバインディングを書いていません(多分あなた自身でそれを持ち、他の人と共有することができます:))ctypesまたはPython C APIを使用してライブラリの関数にアクセスしようと試みることは確かです。
ただし、これまでにないDWARFパーサーを使用して出力するテキスト情報を解析することは非常に控えめな解決策です。 (Linuxの場合)、このためのあなたのオプションは、私は現在、readelfがオフのビルドするプロジェクトを使用
objdump -W
readelf --debug-dump=[OPTIONS]
であり、それは非常に完全な機能を備えているDWARFデバッグ情報をサポートします。単にPythonを使ってシェルでコマンドを実行し、必要に応じて情報を解析することができます。確かにライブラリとして理想的ではありませんが、そのトリックを行うべきです。
編集:以前のコメントでWindowsに言及していました。これらのプログラム(objdumpとreadelf)はどちらもGNU-binutilsの一部であるため、Cygwinやmingwで利用できるはずです。
'dwarfdump'もあります。 – hochl
あなたはpydevtoolsからDWARFライブラリに興味があるかもしれません:
>>> 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
[...]
これは素晴らしいことです。いくつかの質問:1)どのプラットフォームがサポートされていますか(Windows、Linux)? 2)あなたは[PyPI](http://pypi.python.org/pypi)に置くことができますか? –
PyPI上にあります:http://pypi.python.org/pypi/BinTools/0.1.0 – emilmont
素晴らしい!サポートされているプラットフォームはドキュメントには記載されていません。それはWindows上で動作しますか? –
- 1. ELFファイルの読み込み
- 2. オブジェクトファイルは、DWARFデバッグ情報
- 3. ユーザー情報〜txt読み込むファイル
- 4. Cプログラミング(ファイルから変数への情報の読み込み)
- 5. ELMAHログ情報のカスタムテーブルへの読み込み/書き込み
- 6. VHDL textioファイルの読み込みデバッグ
- 7. DWARF情報
- 8. 複数の.txtファイルを読み込み、配列に情報を書き込む
- 9. C++ファイル読み込みライブラリ - ANSIとUnicode
- 10. セッションユーザーからの情報の読み込み
- 11. エンティティエントリからNSStringへのrtf情報の読み込み
- 12. テキストファイルからの情報の読み込み
- 13. データベース情報の読み込みに失敗しました。ファイルtemp xxxxxxxxxxのエラー
- 14. 同じビューコントローラーを別の情報で再読み込みする
- 15. プロセス情報の読み込みproc/<pid> /ステータス
- 16. CPU読み取り/書き込み命令の統計情報(プログラムの読み込みを含む)
- 17. Unicodeファイルの読み込みUnicodeファイルの読み込み
- 18. ファイルからコンフィグレーション情報を読み込む
- 19. 遅延読み込みライブラリ?
- 20. Linuxのelfバイナリでバイナリの読み取り/書き込みを行うファイル
- 21. デバッグ読み込みの問題
- 22. ELFファイルのデバッグ
- 23. ファイルに情報を保存し、起動時に読み込みますか?
- 24. CMDから大きなファイルを読み込み、切り取り情報
- 25. 書き込み情報
- 26. app.configファイルの読み込みをデバッグする方法
- 27. JavaのFileDescriptor .sync()の読み込み*ファイルの読み込み
- 28. SSHのBashスクリプトの読み込みファイルの読み込み
- 29. 組み込みシステムでのELFファイルの使用?
- 30. Rgraphvizライブラリの読み込みエラー
投票:-)迅速かつ積極的に処理する必要があります。 –