これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドパッチです。
プログラム:
NAME
spatch-セマンティックパッチファイルを一連のCファイルに適用します
SYNOPSIS
パッチ --sp-ファイル [-または ] [--iso ファイル ] [ オプション ]
DESCRIPTION
パッチ はC用のプログラムマッチングおよび変換ツールです。プログラマーは
一致するコードとセマンティックパッチとして実行する変換。
標準パッチですが、任意の数のコードサイトで複数のファイルを変換できます。
パッチの詳細については、次のURLをご覧ください。 http://coccinelle.lip6.fr/.
セマンティックパッチの例は、次の場所にあります。 http://coccinellery.org/、そして
スクリプト/コクシネル Linuxカーネルのソースコードのディレクトリ。
OPTIONS
最も一般的に使用されるオプションの概要は次のとおりです。
--sp-ファイル
セマンティックパッチファイル
--ディレクトリ
ディレクトリ内のすべてのファイルを再帰的に処理します
--iso ファイル
(デフォルト= @ SHAREDIR @ /standard.iso)
--マクロファイル
(デフォルト= @ SHAREDIR @ / standard.h)
- デバッグ
マッチングプロセスのデバッグに役立つ情報を印刷します
--all-含む
使用可能なすべてのインクルードファイルが使用されます
--no-含む
ローカルのインクルードファイルでさえ使用されない
-I
インクルードファイルを含むディレクトリ
--インクルードヘッダー
ヘッダーファイルを個別に処理する
---一瞥を使う
--dirで動作し、glimpseindexによって生成された情報を使用します
-o
出力ファイル。 何も指定されていない場合、パッチは標準出力で生成されます
- 所定の位置に
ファイルを直接変更します
--アウトプレイス
変更を.cocci_resファイルに保存します
- バージョン
spatchのバージョンを表示する
- 日にち spatchがコンパイルされた日付を表示します
--ショートヘルプ
オプションの短いリストを参照してください
--ロングヘルプ
さまざまなカテゴリで利用可能なすべてのオプションを表示する
-ヘルプ、 - 助けて
オプションの概要を表示します。
例
./spatch --sp-file foo.cocci foo.c
セマンティックパッチfoo.cocciをCファイルfoo.cに適用します。 セマンティックパッチが適用されます
standard.isoに含まれる同型のセットを法として(standard.isoはデフォルトで配置されます
@ SHAREDIR @ / standard.isoで)。 アプリケーションの効果を示すパッチがある場合は、
標準出力で生成されます。
./spatch --sp-file foo.cocci foo.c -o /tmp/newfoo.c
上記と同じですが、foo.cの変更バージョンが/tmp/newfoo.cに保存されている点が異なります。
ディレクトリ内のすべてのCファイルにspatchを適用することもできます。
./spatch --cocci-file foo.cocci --dir foodir
セマンティックパッチが期待どおりに機能しない場合、オプション--debugは次の選択を示します。
ファイルまたはディレクトリへのセマンティックパッチの適用に関する情報。
MORE OPTIONS
主なオプション
--sp-ファイル
セマンティックパッチファイル
-o 出力ファイル
- 所定の位置に
ファイルを直接変更します
--バックアップサフィックス
インプレースのバックアップを作成するときに使用するサフィックス
--アウトプレイス
変更を.cocci_resファイルに保存します
- 逆行する
適用する前にセマンティックパッチを反転します
-U 差分コンテキスト行の数を設定します
--部分一致
CファイルでSPの部分一致を報告する
--iso ファイル
(デフォルト= /usr/local/lib/coccinelle/standard.iso)
--マクロファイル
--マクロファイル-ビルトイン
(デフォルト= /usr/local/lib/coccinelle/standard.h)
--再帰的-含む
Cファイルに含まれているものとCファイルに含まれているものの両方の利用可能なすべてのインクルードファイルを引き起こします
ヘッダーファイルにインクルードされ、使用されます
--all-含む
Cファイルに含まれるすべての使用可能なインクルードファイルが使用されます
--no-含む
ローカルのインクルードファイルでさえ使用されない
--ローカル-含む
ローカルインクルードファイルが使用されるようにします
--ignore-unknown-options
ツールチェーンに統合する場合(最初の不明なオプションの前に設定する必要があります)
--インクルードヘッダー
ヘッダーファイルを個別に処理する
-I ヘッダーファイルを含む(オプション)
-前処理
セマンティック一致を適用する前にCプリプロセッサを実行します
-c gcc/cpp互換モード
--ディレクトリ ディレクトリ内のすべてのファイルを再帰的に処理します
---一瞥を使う
と連携 --ディレクトリ、glimpseindexによって生成された情報を使用します
--use-google
グーグルコード検索を使用して関連ファイルを見つける
--use-idutils
id-utilsを使用して関連ファイルを検索する
- パッチ
パッチを作成するパス名
現在のディレクトリ内のファイルの場合は「」
--kbuild-info
向上 --ディレクトリ 関連するcファイルをグループ化する
--pyoutput
出力ルーチンを設定します:標準値:
- バージョン
何を推測する
- 日にち 何を推測する
--ショートヘルプ
オプションの短いリストを参照してください
--ロングヘルプ
さまざまなカテゴリで利用可能なすべてのオプションを表示する
エイリアスと廃止されたオプション
--sp コマンドラインセマンティックパッチ
--iso の短いオプション --iso ファイル
--cocci-ファイル
セマンティックパッチファイル
最も便利なショーオプション
--show-diff
--no-show-diff
--force-diffshow
間隔だけが変わってもdiff
--show-フロー
--ctl-inline-let
--ctl-show-mcodekind
--show-バインディング
--show-transinfo
--show-その他
--ショー-トライ中
処理中の各関数の名前を表示します
--show-依存関係
各ルールに関連する依存関係を表示する
VERBOSEサブシステムオプション
--verbose-ctl-engine
--verbose-match
--verbose-engine
--グラフィカルなトレース
マッチングプロセスを表すPDFファイルを生成します
--gt-ラベルなし
グラフラベルを削除します(オプションが必要です -グラフィカルトレース)
--解析エラーメッセージ
--verbose-構文解析
--type-error-msg
その他のショーオプション
--show-c
--show-cocci
--固定フローの前に表示
--show-ctl-tex
--show-ctl-text
--show-SP
DEBUGCの解析/解析解除
--debug-cpp
--debug-lexer
--debug-etdt
--debug-typedef
--フィルターメッセージ
マクロが「既知の」cpp構造である場合、一部のcppメッセージをフィルタリングします
--フィルター定義エラー
--filter-msg-define-error
エラーメッセージをフィルタリングする
--filter-pass-level
--debug-解析解除
一連のデバッグオプションを一度に有効化/無効化するためのショット
- 静かな
- とても静か
- デバッグ
- パッド
ベンチオプション
- プロフィール
主なコクシネル機能に関するタイミング情報を収集する
- ベンチ
CTLエンジンのプロファイリング用
- タイムアウト
秒単位のタイムアウト
-ステップ
コード単位あたりのモデル検査ステップの最大数
--iso 制限
ISOアプリケーションの最大深度
--ISO制限なし
ISOアプリケーションの最大深度の制限を無効にする
--track-iso
同型の使用法に関する情報を収集する
--disable-iso
特定の同型を無効にする
--プロファイル-iso
同型使用のコストに関する情報を収集する
アルゴリズムオプションの変更
--keep コメント
削除されたコードの周りにコメントを残す
- ループ
--ループなし
ループ構造から派生したすべてのバックエッジをドロップします-安全ではありません
--ノーゴト
gotosから派生したすべてのジャンプをドロップします-安全ではありません
--no-saved-typedefs
推測されたすべてのtypedefを、あるコードのある解析から次の解析にドロップします
--ocaml-正規表現
制約にOCamlStr正規表現を使用する
--l1
--ifdef から if
ifdefをif(実験的)に変換する
--no-ifdef-to-if
ifdefをif(実験的)に変換する
--マルチパスを無効にする
--noif0-合格
--定義済み
- 未定義
--noadd-typedef-root
--disallow-nested-exps
表現パターンが用語とその下位用語に一致することを禁止します
--試してみる価値のあるオプションを無効にする
--only-return-is-error-exitif このフラグが設定されていない場合、中断して続行することもエラーになります
終了する
--allow-inconsistent-paths
このフラグが設定されている場合は、一貫性のないパスをチェックしないでください。 危険な
--安全でない式
最上位の論理和を優先しない式の論理和を作成します
--int-ビット
unsignedintのビット数
--ロングビット
unsignedlongのビット数
--linux-間隔
+コードの間隔は、Linuxの規則に従います
--smpl-間隔
+コードの間隔は、セマンティックパッチに従います
-D 仮想ルールが一致していると見なされる必要があることを示します
- NS++は、C++ファイルの解析を少し試みます。 ソースファイルでサポートされている拡張子
は.cpp、.cxx、.ccであり、ヘッダーファイルの場合は.h、.hpp、および.hxxです。 これに注意してください
Coccinelleの動作が異なるため、オプションは.cファイルの処理を無効にします。
C ++。
その他のオプション
- デバッガ
ocamldebugでspatchを起動するかどうかを設定するオプション
--一度だけ無効にする
より多くのメッセージを印刷するには
--show-trace-profile
トレースを表示
--save-tmp-files
並行性
- 索引
このspatchの実行に使用するプロセッサ
--最大 使用可能なプロセッサの数
--mod-distrib
modを使用してプロセッサ間でファイルを配布します
パッドオプション
--キャッシュの使用
.ast_raw事前解析されたキャッシュCファイルを使用します
--キャッシュプレフィックス
キャッシュされたAST、セットのディレクトリ --キャッシュの使用
--キャッシュ制限
キャッシュされたAST、セットの最大数 --キャッシュの使用
テストモードとテストオプション(テスト/または.OKファイルで動作)
テストオプションは、 --sp-ファイル などがあります。
- テスト テスト/ファイルでspatchを起動します。[c、cocci]
--testall
テスト中のすべてのファイルでspatchを起動します/.resを持っています
--test-okfailed
.resファイルを使用して。{ok、failed、spatch_ok}ファイルを生成します
--テスト回帰-ok失敗
現在のディレクトリにある。{ok、failed、spatch_ok}ファイルを処理します
-- 期待値と比較
file.resも使用してください
--予想スコアファイル
で比較するスコアファイル --testall
--更新スコアファイルなし
スコアファイルを更新しないでください --testall 成功する
--リラックスインクルードパス
アクションモード
アクションオプションは、 --sp-ファイル 等々。 それは他のためです
(内部)spatchプログラムの使用。
--トークン-c
--parse-c
--parse-h
--parse-ch
--parse-i
-解析
--show-フロー
--制御フロー
--ファイルへの制御フロー
--test-cfg-ifdef
--解析-解析解除
--type-c
--比較-c
--コメント-annotater-c
--compare-c-ハードコードされています
-- テスト属性
--test-cpp
--抽出-マクロ
--抽出マクロ選択
--xxx <>
--解析-球菌
--比較-c
onworks.netサービスを使用してオンラインでspatchを使用する
