GoGPT Best VPN GoSearch

OnWorksファビコン

abicheck - クラウドでオンライン

Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、またはMACOSオンラインエミュレーターを介してOnWorks無料ホスティングプロバイダーでabicheckを実行します

これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドabicheckです。

プログラム:

NAME


abicheck - プライベートまたは進化中のシンボルへの呼び出しについてアプリケーションバイナリをチェックします
ライブラリおよび一部のシステム ライブラリの静的リンク用。

SYNOPSIS


アビチェック [-h] [-k] [-a] [-I] [-v] [-f] リストファイル] [-または アウトファイル] [-NS パターン] [-e パターン] [-NS
ジョブ] [-l 図書館] [-L ldパス] [(-s|-S) データベースファイル] [(-d|-D) データベースファイル] [-O データベースファイル] [-A
リストファイル] ファイル

DESCRIPTION


アビチェック アプリケーション バイナリ上で実行され、次のいずれかが発生するたびに警告が発行されます。
次の XNUMX つの状態が検出されます。

· プライベート シンボル 使用法。 プライベートシンボルはライブラリ内の関数またはデータ変数です
そのパッケージの内部にあるパッケージ。 これらはパッケージ内のライブラリによって使用されます
内部通信用であり、アプリケーション開発者が使用する API/ABI の一部ではありません。
使用する必要があります。

· 進化 シンボル 使用法。 進化するシンボルはライブラリ内の関数またはデータ変数です
開発者が使用することを目的としているが、「進化中」とマークされているパッケージ、または
「不安定」とは、将来のリリースでは互換性がなくなるか、消滅する可能性があるという意味です。
ライブラリパッケージの。

· 静的 リンク。 システム ライブラリ (libc.a など) の静的リンク
アプリケーションはシステム ライブラリ コードに「ロック」されるため、一般的には良いアイデアではありません。
アプリケーションのバイナリは、システムの今後のリリースと互換性がなくなる可能性があります。 アビチェック
いくつかのシステム ライブラリの静的リンクの検出を試みます。

デフォルトの動作では、チェックされたバイナリ オブジェクトごとに、そのバイナリ オブジェクトからの直接呼び出しを検査します。
バイナリオブジェクトのみ。 の -l オプションを使用すると、バイナリ オブジェクトが取り込むライブラリに含めることができます。
彼らの通話もチェックされました。

OPTIONS


次のオプションがサポートされています。

-k 重大なエラーがある場合でもバイナリをチェックし続けます (ダイナミック リンカー レポート)
未解決のシンボル、 ldd(1) 失敗、シンボルが検出されなかった)。

-h 長い形式のヘルプを印刷します。

-v 冗長。 追加情報を印刷します。

-f リストファイル
当学校区の リストファイル は、チェックするバイナリ オブジェクトのリストを XNUMX 行に XNUMX つずつ含むファイルです。
このリストは、コマンド ラインで引数として指定されたファイルに追加されます。 もしも
リストファイル が「-」の場合、標準入力が使用されます。

-o アウトファイル
出力をに書き込む アウトファイル stdoutの代わりに。

-p パターン
バージョン名パターン一致ラベリングのプライベート バージョン セットを変更します。 デフォルトは
/プライベート/ 大文字と小文字を区別しない一致を使用します。

正規表現のコンポーネントの場合 パターン XNUMX つのコロンが連続して含まれています。 パット1::パット2,
シンボルレベルのマッチングは、 バージョン::シンボル or
ライブラリ::シンボル マッチ パターン (ここで、シンボル名、バージョン (存在する場合)、および
ライブラリのベース名は次のように置き換えられます シンボル, バージョン, ライブラリ) 例えば、

-p 'FOO_VERS.*::_foopriv'
or
-p 'libfoo.so.*::_foopriv'

-e パターン
と同じ -p ただし、「進化する」インターフェースの場合です。

-L ldパス
をセットする LD_LIBRARY_PATH 環境変数 ldパス ダイナミックを呼び出す前に
リンカ。 使用 -L 設定を解除するには「」 LD_LIBRARY_PATH。

のコンポーネントの XNUMX つが ldパス 文字列「find」の場合、すべての共有ライブラリ
in ファイル が見つかり、そのパスが「検索」場所に挿入されます。 ご了承ください
順番はランダムになります。

-l ライブラリ
共有ライブラリのベース名またはフルパス名を追加します。 ライブラリ の一覧に
プライベート呼び出しを行うためにチェックされるオブジェクト。 このオプションは次の場合に発生する可能性があります
コマンドラインで一度実行すると追加的になります。 デフォルトでは、
システムライブラリへのバイナリがチェックされます。 の -l スイッチでチェックできるようになります
間接呼び出し: app -> supportlib -> systemlib。

-a すべての共有バイナリのリストを確認して収集する前に、すべてのバイナリをループします。
オブジェクト。 見つかった各共有オブジェクトのベース名を取得し、あたかもそれであるかのように動作します。
で指定 -l option オプションを選択してから、abicheck チェックを実行します。 こちらです、
すべての「アプリケーション内部」オブジェクトからの呼び出しがチェックされます。
直接電話。 (共有オブジェクトに依存関係がない場合に便利です
記録されています。)

-I チェックでは共有ライブラリを無視し、実行可能ファイルのみをチェックします。 と互換性があります -a、
ライブラリは最初に検索されますが、その後はチェックされません。

-d DBファイル、 -D データベースファイル
動的 (パブリックまたはプライベート) のフォールバック フラット ファイル シンボル データベースを指定します。
テスト。 これらの分類は、ライブラリがバージョン管理されていない場合 (つまり、
分類はライブラリ自体には存在しません)。 使用 -D それだけを示すために
からの情報 データベースファイル 使用すべきです。 ラインイン データベースファイル これらのいずれかになります
フォーム:

ライブラリ|シンボル
ライブラリ|クラス|シンボル
ライブラリ|ファイル=パス

ライブラリ 指定するライブラリへのフルパスである必要があります(指定することはできません)。
ベース名)。

最初の形式のマーク シンボル プライベートとして。

XNUMX 番目の形式のマーク シンボル   class コラボレー class パブリック、プライベート、または
進化しています。

XNUMX 番目の形式はファイルを示します path 次の場合にオンデマンドで開く必要があります ライブラリ is
初めて遭遇した。 ファイル path を除く最初の XNUMX つの形式の行が含まれています。
ライブラリ 分野。 XNUMX 番目の形式は、多くの分類の処理を避けるための高速化です。
実行中に検出されなかったライブラリの行。

-O データベースファイル
オーバーライド ファイルを指定して、動的シンボルの分類を変更します。
(公立対私立) テスト。 オーバーライド ファイルの形式は次のとおりです。

ライブラリ|シンボル|クラス

ライブラリにはフルパスまたはベース名を指定できます。 ライブラリが「__SKIP__」の場合、シンボル
ライブラリ内で見つかった場合は無視されます。クラスは「public」にすることができます。
「非公開」、「進化中」、または「削除済み」。 「deleted」クラスは特殊なケースです。つまり、
シンボルは、一部のリリースでライブラリから削除されました。 記号「__ALL__」
「削除された」クラスは、ライブラリ全体が削除されたか、または不安定であることを意味します
使用しています。

例:

libfoo.so.1|__bar|プライベート
/lib/libxyz.so.1|baz|パブリック
__SKIP__|__fputwc_xpg5

これらの設定は、ライブラリ内の分類をオーバーライドします (ライブラリから)
バージョン管理、から入手可能 pvs(1)など)。

-A リストファイル
対象となる ABI ライブラリを、にリストされているライブラリに設定します。 リストファイル (フル
パス名、XNUMX 行に XNUMX つ)。 これらのライブラリへの呼び出しのみがチェックされます。 全て
他のライブラリ呼び出しは無視されます。

-s DBファイル、 -S データベースファイル
静的リンク テスト用に、より広範なシンボル データベースを指定します。 データベースファイル 多分
ファイルのカンマ区切りリスト。 ファイルが静的アーカイブ (lib*.a) の場合は、
シンボルを抽出するために処理されます。 それ以外の場合は、以下で構成されるデータベース ファイルになります。
たとえば、symbol|library:module 形式の行:

shmat|/usr/lib/libc.a:shmsys.o
shmctl|/usr/lib/libc.a:shmsys.o
shmdt|/usr/lib/libc.a:shmsys.o
shmget|/usr/lib/libc.a:shmsys.o
...

module.o 内のすべてのシンボルがアプリケーションで定義されている場合、静的リンクは
そのモジュール (および対応するライブラリ アーカイブ) が想定されます。 使用 -S 示すために、
静的リンク テストのみを実行する必要があります。

  -S int型 静的リンク チェックのみを実行し、内部データベースを使用します。

  -s なし or -S なし 静的リンクのチェックを完全にスキップします。

-j ジョブズ
ラン ジョブズ 別々のプロセスとして並行して実行されます。 示す -k。 主に対象となるのは
複数の CPU マシン ジョブズ プロセッサの数に近い値にする必要があります。
出力は tmp ファイルに収集され、実行の終わり近くにすべて一度に出力されます。
それぞれの仕事が終わります。

If ジョブズ 「-」、「検出」、または「n」の場合 ジョブズ に応じて数値が設定されます
現在のマシン上のプロセッサの数 (特定できる場合)。

オペランド


次のオペランドがサポートされています。

ファイル チェックするアプリケーション バイナリ オブジェクトのリスト。

出力


問題ごとに XNUMX 行あります (バイナリ チェックごとに複数の問題がある場合があります)。
次のようになります。

問題が見つからなかった場合:
ファイル名OK

プライベートシンボルを使用する場合:
ファイル名: プライベート (ライブラリ:プライベートバージョン) private_sym

シンボルの使用法を進化させる場合:
ファイル名: 進化中 (ライブラリ:進化するバージョン) 進化する_sym

ファイルがシステム アーカイブ ライブラリに静的にリンクされている場合:
ファイル名: STATIC_LINK (アーカイブ)

ファイルのチェックがスキップされた場合:
ファイル名:スキップ(理由)

で削除されたクラスを使用中 -O ファイル オプションを上書きする場合、これらの問題は次の可能性があります。
見つかった:

あるリリースでシンボルがライブラリから削除された場合:
ファイル名: DELETED_SYM: シンボル/ライブラリ

(ライブラリ シンボルがバインドされていない場合は「アンバインド」になります)

ライブラリ全体が何らかのリリースで削除されているか、その他の点で不安定な場合
使用します。
ファイル名: UNSTABLE_LIB: 図書館その名 = ライブラリパス

(ライブラリパス ライブラリが見つからなかった場合は「ファイルが見つかりません」になる可能性があります)

以下の問題が発生した場合、致命的なエラーが発生します。 -k オプションが使用されます:

動的リンカーが解決できなかった場合 N シンボルの場合 ldd -r 実行されました:
ファイル名: UNBOUND_SYMBOLS: N

動的リンカーが動的バインディングを検出しなかった場合:
ファイル名: NO_BINDINGS

If ldd -r   LD_DEBUG=ファイル、バインディング 失敗しました:
ファイル名: LDD_エラー

後者の XNUMX つのケースでは、次のように実行されます。 ldd -r 詳細については、バイナリ ファイルを参照してください。
間違っていました(注意してください) アビチェック runs ldd -r   LD_DEBUG=ファイル、バインディング 設定)。 一部では
システムでは、ダイナミック リンカーは SUID プログラムを処理しません。 LD_DEBUG セット (通常はこれ
結果は NO_BINDINGS 会場は アビチェック 出力)。

共有ライブラリ (libfoo.so など) で abicheck を実行している場合、
持っています で構築されました -l リブ フラグを設定してライブラリの依存関係を記録し、その後「バインドされていない
シンボル」の問題が発生する可能性が非常に高いです。
ライブラリを使用するか、ライブラリを使用するアプリケーション バイナリをチェックし、 -l のオプション
アビチェック。

EXIT ステータス


次の終了値が返されます。

0 エラーも問題も見つかりませんでした。

1 致命的なエラーが発生しました。

2 致命的なエラーは発生しませんでしたが、一部のバイナリに問題が検出されました。

注意事項


ELF オブジェクトのみがチェックされます。

-s -S -d   -O dbfiles では、「#」文字は通常の方法でコメント行を開始します。

を介して提供される「::」カスタム一致を使用している場合を除きます。 -p or -e フラグ、abicheck 缶
シンボルのバージョン管理が適用されているシステム ライブラリに対してのみチェックします (つまり、
ライブラリ自体の各シンボルに対して記録されたプライベート情報および/または進化する情報)。
シンボルのバージョン管理の詳細については、『Solaris リンカおよびライブラリ ガイド』を参照してください。
解答集は URL にあります http://docs.sun.com/ab2/coll.45.13 およびコマンド/バージョン-スクリプト
GNU リンカー「ld」情報ページのセクション。

デフォルトのシンボル バージョン名一致パターンは、大文字と小文字を区別せずに一致します。
文字列 "private" と "EVOLUTION" (それぞれプライベートなケースと進化中のケース)。

一重引用符文字または改行を含む奇数のファイル名はスキップされます。 そのような
文字は、シェルを介したコマンドの呼び出しを妨げます。

ディレクトリを再帰的に使用するには、 find(1) そして、出力をファイルに収集して使用します。
  -f オプション、または次のパイプ経由で:

...を見つける | abicheck -f - ...

onworks.net サービスを使用してオンラインで abicheck を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。