これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド creduc です。
プログラム:
NAME
creduce - C および C++ プログラム リデューサー
DESCRIPTION
creduce 2.5.0 (不明) -- C および C++ プログラム リデューサー
C-Reduce には、「興味深いテスト」と、削減する XNUMX つ以上のファイルが必要です。
書き込み可能。 面白さテストは、次のような実行可能プログラム (通常はシェル スクリプト) です。
部分的に縮小されたファイルが興味深い場合 (さらなる縮小の候補)、0 を返します。
部分的に縮小されたファイルが興味のない場合 (候補ではない場合) は XNUMX 以外を返します。
さらなる削減 -- 興味のないファイルはすべて破棄されます)。
C-Reduce は、
部分的に縮小されたファイル。 したがって、面白さテストで部分的に調べると、
ファイルを縮小するには、現在の作業ディレクトリへの相対パスを使用して縮小する必要があります。 で
一方、関心度テストが縮小されていないファイルを参照する場合、
これは絶対パスを使用して行う必要があります。
面白さのテストではコマンド ライン引数を期待しないでください。 そのはず
決定的であり、呼び出すサブコマンドにリソース制限を適用する場合があります。
(例: ulimit の使用)。 特に、C-Reduce は時々無限のエラーを引き起こすことが知られています。
削減されるプログラムにループします。 したがって、面白さテストを実行すると、
コンパイルされたプログラムの場合、おそらくタイムアウト下で実行する必要があります。
簡単な例として、GCC のベクタライザーが起動した場合にファイルが興味深いと考えられるとします。
コンパイル中に、次の興味深いテストを使用できます。
gccの -w -O3 foo.c -S && grep xmm foo.s
興味度テストが機能しているかどうかを確認するには、次のコマンドを実行してみてください。
DIR=`mktemp -d` cp file_to_reduce [オプションで、さらに削減するファイル] $DIR cd $DIR
/path/to/interestingness_test エコー$?
これにより、「0」が端末にエコーされるはずです。 これが起こらない場合、
興味深いテストに欠陥があるため、C-Reduce はそれを利用できません。
これまでに面白さテストを作成したことがない場合は、このチュートリアルを参照してください。
追加のガイダンス:
https://embed.cs.utah.edu/creduce/using/
可能であれば、たとえば以下を使用して生成された前処理されたコードに対して C-Reduce を実行します。
gccの -E -P ファイル.c
前処理されたコードを減らすことができない場合は、前処理されていないコードだけを減らすこともできます。
ファイルを削除するか、ファイルとその推移的なインクルードに対して複数ファイルの縮小を実行します (または
それらのサブセット)。 最初のケースでは、CREDUCE_INCLUDE_PATH を設定する必要があります。
環境変数を、コロンで区切られたインクルード ディレクトリのリストに追加します。
それらを見つけるには、clang_delta を使用します。
関心度テストにクロス コンパイラとその特性が含まれる場合、
クロスターゲットはホストとは異なります。ホストと一致するように CREDUCE_TARGET_TRIPLE を設定する必要があります。
クロスターゲット。 これは、前処理されていないコードを使用している場合に特に重要です。
そしてCREDUCE_INCLUDE_PATHを使用してください。
「s」を押すと、いつでも次のパスにスキップできます (この機能は、Perl が
モジュール Term::ReadKey はシステムで利用可能です)。
製品概要 of オプション:
--パスを追加
指定したパスをスケジュールに追加します
--これも興味深い
プロセス終了コード (通常は 64 ~ 113 の範囲内)
関心度テストによって返されると、C-Reduce はそのコピーを保存します。
バリアント [デフォルト: ~1】
- デバッグ
デバッグ情報を印刷する
--パス時に死ぬバグ
パスで致命的ではない問題が発生した場合は、C-Reduce を終了します。
--最大改善
C-Reduce による単一の変換によるファイル サイズの最大の改善
accept (C-Reduce を遅くする場合にのみ役立ちます)
--n
使用するコアの数。 C-Reduce は適切な設定を自動的に選択しようとしますが、
状況に対して選択肢が低すぎるか高すぎる可能性があります [デフォルト: 2]
--no-default-passes
空のパススケジュールから始める
--諦めない
50000 回繰り返しても進歩しないパスを諦めないでください
--ノーキル
並列インスタンスを強制終了するのではなく、並列インスタンスが自動的に終了するまで待ちます (
デバッグに役立ちます)
--print-diff
デバッグのために、変換によって加えられた変更を表示します
-消毒する
元のソース ファイルの詳細を不明瞭にしようとします
--save-temps
削除しないでください /tmp/creduce-x 終了時のディレクトリ
--shadap
致命的ではない内部エラーに関する出力を抑制する
--初期パスをスキップ
最初のパスをスキップします (入力がすでに部分的に減少している場合に便利です)
--スキップキーオフ
「s」を押したときの現在のパスの残りのスキップを無効にする
--遅い
削減するためにさらに努力しますが、おそらく削減には長い時間がかかるでしょう
- 几帳面 各ファイルのバックアップ コピーを作成して file.orig として縮小しないでください。
- タイミング
削減の進行状況に関するタイムスタンプを出力する
使用法: creduce [オプション]interestingness_test file_to_reduce [オプションで、さらに多くのファイルを
減らす]
生み出す - 助けて 詳しく知る
onworks.net サービスを使用してオンラインで creduce を使用する