3

Python ctypesを実装nm -Dまたは使用することは可能ですか?readelf -s

.soファイルのすべての動的シンボルを一覧表示したい。

前もって感謝します!

4

1 に答える 1

2

私の答えは次のとおりです。いいえctypes、ライブラリで使用可能なすべてのシンボルを列挙できる可能性はほとんどありません。

この理由は、主にctypesPython モジュールとしてのスコープと、動的ライブラリ API のスコープ: POSIX dlopen+dlsymまたは Win32 LoadLibrary+にありGetProcAddressます。これらの API の主なタスクは、DLL をロードし、シンボル名/序数によって呼び出し可能なアドレスを取得することです。これらは、シンボルの列挙用に設計されていません。それらを使用してシンボルをリストすることはできません。もちろん、 CPythonはそれらに依存してその機能を実装しています。

また、あなたが言及したnmおよびツールは、実行可能ファイルを独自に解析してシンボルリストを取得することも説明する必要があります。これは、ライブラリを実行可能モジュールとしてメモリにロードすることとはまったく関係ありません。したがって、それを行うには、たとえば次のような別の Python モジュールが必要になります。readelfpython-elf

于 2012-08-07T09:49:09.653 に答える