ホームページ >バックエンド開発 >C++ >共有ライブラリ (.so ファイル) からシンボル情報を取得してデマングルするにはどうすればよいですか?

共有ライブラリ (.so ファイル) からシンボル情報を取得してデマングルするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-19 12:22:13350ブラウズ

How Can I Retrieve and Demangle Symbol Information from a Shared Library (.so file)?

共有ライブラリからシンボル情報を取得する

共有ライブラリ (.so ファイル) を操作する場合、多くの場合、そのシンボルを調べることが必要になります。それらの構造と相互関連性についての洞察を得ることができます。このガイドでは、.so ファイル内のシンボルをリストするためのさまざまな方法を説明します。これには、シンボルの起源と依存関係を特定する手法も含まれます。

nm コマンド

nm ユーティリティは、一般的なコマンドです。実行可能ファイルおよびライブラリ ファイル内のシンボルをリストするためのツール。シンボル名、アドレス、および特性に関する詳細情報が提供されます。 nm を使用して .so ファイル内のシンボルをリストするには:

nm -gD yourLib.so

-gD オプションは、シンボル名とそれに関連する GNU デバッグ情報を表示するように nm に指示します。

C シンボルのデマングリング

C ライブラリの場合、シンボルが壊れることがよくあります最適化の目的で。これらのシンボルをデマングルして読みやすくするには、-C オプションを使用します。

nm -gDC yourLib.so

ELF 形式の共有ライブラリ

.so ファイルが ELF 形式の場合、2 つの代替ツールが考えられます。使用:

objdump

Objdump は、シンボルのリストを含む ELF ファイルに関する包括的な情報を提供します:

$ objdump -TC libz.so

-C オプションは C をデマングルしますシンボル、改善

readelf

Readelf は、シンボル情報を含む ELF ファイルの機能豊富な分析を提供します。

$ readelf -Ws libz.so

-Ws オプションは次のように表示します。詳細なシンボルテーブル

以上が共有ライブラリ (.so ファイル) からシンボル情報を取得してデマングルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。