Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxシステムでファイルの呼び出し状況を表示するシェルコマンド

Linuxシステムでファイルの呼び出し状況を表示するシェルコマンド

  

ldd /full /path /conmmand


1、最初のlddは実行可能プログラムではなく、単にシェルスクリプトです。

2、lddは実行可能モジュールの依存関係を表示できます。原則として、LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSEなどの一連の環境変数を設定します。 LD_TRACE_LOADED_OBJECTS環境変数が空でない場合、実行可能プログラムは実行中にモジュールの依存関係のみを表示し、プログラムは実際には実行されません。それ以外の場合は、次のようにシェル端末でテストできます。


(1)export LD_TRACE_LOADED_OBJECTS = 1

(2)lsなどのプログラムを実行します。実行結果


3、lddは実行可能モジュールの依存関係の動作原理を示しており、その本質はld-linux.so(elf動的ライブラリローダー)によって達成されます。私たちは、ld-linux.soモジュールが実行可能モジュールプログラムの前に動作して制御を得ることを知っているので、上記の環境変数が設定されると、ld-linux.soは実行可能モジュールの依存関係を表示することを選択します。


4、実際には以下のようにld-linux.soモジュールを直接実行することができます。/lib/ld-linux.so.2 --list program(これはldd programと同等です)ldd command usage (lddからの抜粋--help)名前ldd - 共有ライブラリの依存関係の印刷


概要ldd [オプション] ...ファイル...


説明lddの出力各プログラムに必要な共有ライブラリ、またはコマンドラインで指定された共有ライブラリ。


オプション

--version

lddのバージョン番号を印刷する

-v --verbose

すべての情報を印刷するたとえば、シンボルのバージョン情報を含めることができます。

-d --data-relocs

シンボルの再展開を実行し、不足しているターゲットオブジェクトを報告する(ELF形式にのみ適用可能) -r --function-relocs

ターゲットオブジェクトと関数を再デプロイし、見つからないターゲットオブジェクトと関数を報告します(ELFフォーマットのみ)

--help使用法


注意:

標準バージョンのlddはglibc2で提供されています。 Libc5は以前は古いバージョンで利用可能でしたが、まだいくつかのシステムに存在します。 longオプションはlibc5バージョンではサポートされていません。一方、glibc2バージョンは-Vオプションをサポートしておらず、同等の--versionオプションのみをサポートしています。


コマンドラインで与えられたライブラリ名が '/'を含む場合、このプログラムのlibc5バージョンはそれをライブラリ名として使います;そうでなければそれは標準的な場所でライブラリを検索します。カレントディレクトリで "./"の接頭辞を付けて共有ライブラリを実行します。


エラー:

lddはa.out形式の共有ライブラリでは動作できません。


lddは、lddコンパイラがリリースされる前に作成された非常に古いa.outプログラムでは動作しません。このタイプのプログラムでlddを使用すると、プログラムはargc = 0を実行しようとしますが、結果は予測不能です。

Copyright © Windowsの知識 All Rights Reserved