これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの 3.5 つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド bugpoint-XNUMX です。
プログラム:
NAME
バグポイント - 自動テストケース削減ツール
SYNOPSIS
バグポイント [オプション] [ Llvm ll/bc ファイル] [Llvm パス] --args プログラム 引数
DESCRIPTION
バグポイント LLVM ツールの問題の原因を絞り込んで合格します。 使用できるのは、
オプティマイザのクラッシュ、オプティマイザによるコンパイルミス、または不良の XNUMX 種類の障害をデバッグします。
ネイティブ コードの生成 (静的コンパイラーおよび JIT コンパイラーの問題を含む)。 それは次のことを目指しています
大規模なテスト ケースを小さくて有用なテスト ケースに削減します。 デザインや詳しい内容については、
内部の仕組み バグポイント、バグポイントの使用に関するアドバイスも参照してください。
llvm/docs/Bugpoint.html LLVM ディストリビューション内。
OPTIONS
--追加-so ライブラリ
動的共有オブジェクトをロードします ライブラリ 実行するたびにテストプログラムに組み込まれます。 これ
非 LLVM ライブラリ (
X または Curses ライブラリ) を実行します。
--終了コードを追加={真/偽}
テスト プログラムの終了コードを出力ファイルに追加して、終了コードの変更が反映されるようにします。
テストの失敗とみなされます。 デフォルトは false です。
--args プログラム 引数
後に指定されたすべての引数を渡します --args テストプログラムが実行されるたびに。 ノート
のいずれかがあれば プログラム 引数 「」で始まる-"、次を使用する必要があります:
バグポイント [バグポイント引数] --args -- [プログラム引数]
「--「直後に --args オプションは言う バグポイント あらゆる選択肢を検討するために
と-「の一員になるために」 --args オプションとしてではなく、 バグポイント そのもの。
--ツール引数 ツール 引数
後に指定されたすべての引数を渡します --ツール引数 テスト対象の LLVM ツールへ (LLC, LLI,
など) 実行するたびに。 このオプションは次のように使用する必要があります。
バグポイント [バグポイント引数] --tool-args -- [ツール引数]
「--「直後に --ツール引数 オプションは言う バグポイント あらゆる選択肢を検討する
で始まります "-「の一員になるために」 --ツール引数 オプションとしてではなく、 バグポイント
自体。 (見る --args、 その上。)
--safe-tool-args ツール 引数
後に指定されたすべての引数を渡します --safe-tool-args 「安全な」実行ツールに。
--gcc-tool-args gccの ツール 引数
後に指定されたすべての引数を渡します --gcc-tool-args の呼び出しに gccの.
--opt-args オプト 引数
後に指定されたすべての引数を渡します --opt-args の呼び出しに オプト.
--disable-{dce,simplifycfg}
テスト プログラムのサイズをクリーンアップして削減するために、指定されたパスを実行しないでください。 に
デフォルト、 バグポイント は、テスト プログラムを削減しようとするときに、これらのパスを内部で使用します。
これらのパスのいずれかでバグを見つけようとしている場合は、 バグポイント クラッシュする可能性があります。
--enable-valgrind
valgrind を使用して、最適化フェーズで障害を見つけます。 これによりバグポイントを見つけることができるようになります
それ以外の場合は、メモリの管理ミスによって引き起こされる無症状の問題です。
-バグを見つける
指定されたパスを継続的にランダム化し、バグが見つかるまでテスト プログラムで実行します。
見つかるかユーザーが殺害する バグポイント.
-助けて
コマンドラインオプションの概要を出力します。
- 入力 ファイル名
Open ファイル名 テスト プログラムが実行されるたびに、その標準入力を次のようにリダイレクトします。
そのファイルから来ます。
- ロード プラグイン
動的オブジェクトをロードする プラグイン に バグポイント 自体。 このオブジェクトは新規登録する必要があります
最適化はパスします。 ロードされると、オブジェクトは新しいコマンド ライン オプションを追加します。
さまざまな最適化を可能にします。 最適化の新しい完全なリストを表示するには、
-助けて および - ロード オプションを一緒に。 例えば:
バグポイント --load myNewPass.so -help
--制限 メガバイト
最適化と codegen のメモリ使用量の上限を指定します。 ゼロに設定する
制限を無効にします。
- 出力 ファイル名
テスト プログラムが標準出力ストリームに出力を生成するときは常に、
の内容と一致する ファイル名 (「基準出力」)。 このオプションを使用しない場合は、
バグポイント プログラムをコンパイルして参照出力を生成しようとします。
「安全な」バックエンドを実行してください。
--run-{int、jit、llc、カスタム}
テストプログラムがコンパイルされるたびに、 バグポイント を使用してコードを生成する必要があります
指定されたコードジェネレーター。 これらのオプションを使用すると、インタープリター、JIT を選択できます。
コンパイラ、静的ネイティブ コード コンパイラ、またはカスタム コマンド (「 --exec コマンド)
。
--safe-{llc,custom}
コードジェネレーターをデバッグするとき、 バグポイント 指定されたコードジェネレーターを次のように使用する必要があります
「安全な」コードジェネレーター。 これは、
「参照出力」が提供されていない場合、およびプログラムの一部をコンパイルするため
それらはテストケースから除外されるためです。 これらのオプションを使用すると、
静的ネイティブ コード コンパイラ、またはカスタム コマンド (「 --exec コマンド)それぞれ。
現在、インタープリターと JIT バックエンドを「安全な」バックエンドとして使用することはできません。
--exec コマンド command
このオプションは、 --カスタム実行 および --セーフカスタム オプション
ビットコードのテストケースを実行します。 これはクロスコンパイルに役立ちます。
--コンパイルコマンド command
このオプションは、 --コンパイルカスタム をコンパイルするオプション
ビットコードのテストケース。 これは、何も実行せずにコンパイラ出力をテストする場合に役立ちます。
ステージをリンクまたは実行します。 簡略化された単体テストを生成するには、CHECK ディレクティブを追加します。
をテストケースに渡し、実行可能なコンパイル コマンド スクリプトの名前を次の形式で渡します。
#!/bin/sh
LLC「$@」
not FileCheck [バグポイント入力ファイル].ll < bugpoint-test-program.s
FileCheck が合格する限り、このスクリプトは「失敗」します。 したがって、結果は最小になります
FileCheck に合格するビットコード。
--セーフパス path
このオプションは、実行するコマンドへのパスを定義します。
--safe-{int、jit、llc、カスタム} オプションを選択します。
EXIT ステータス
If バグポイント 問題の発見に成功した場合は、0 で終了します。それ以外の場合、エラーが発生した場合は、
発生した場合、ゼロ以外の値で終了します。
onworks.net サービスを使用してオンラインで bugpoint-3.5 を使用する