Dies ist der Befehls-Spatch, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
spatch – wendet eine semantische Patch-Datei auf eine Reihe von C-Dateien an
ZUSAMMENFASSUNG
Fleck --sp-Datei [-oder ] [--iso-datei ] [ Optionen ]
BESCHREIBUNG
Fleck ist ein Programmabgleichs- und Transformationstool für C. Der Programmierer beschreibt das
Code zum Abgleichen und die Transformation, die als semantischer Patch ausgeführt werden soll, der wie folgt aussieht
Standard-Patch, kann aber mehrere Dateien an beliebig vielen Code-Sites umwandeln.
Weitere Informationen zu Spatch finden Sie unter http://coccinelle.lip6.fr/.
Beispiele für semantische Patches finden Sie unter http://coccinellery.org/und im
Skripte/Coccinelle Verzeichnis des Linux-Kernel-Quellcodes.
OPTIONAL
Hier ist eine Zusammenfassung der am häufigsten verwendeten Optionen:
--sp-Datei
die semantische Patchdatei
--dir
Verarbeiten Sie alle Dateien im Verzeichnis rekursiv
--iso-Datei
(Standard=@SHAREDIR@/standard.iso)
--macro-datei
(Standard=@SHAREDIR@/standard.h)
--debuggen
Drucken Sie einige Informationen aus, die beim Debuggen des Matching-Prozesses helfen
--all-includes
bewirkt, dass alle verfügbaren Include-Dateien verwendet werden
--no-includes
bewirkt, dass nicht einmal lokale Include-Dateien verwendet werden
-I
das Verzeichnis, das die Include-Dateien enthält
--include-header
Header-Dateien unabhängig verarbeiten
--use-glimpse
funktioniert mit --dir, verwendet von glimpseindex generierte Informationen
-o
die Ausgabedatei. Wenn keine angegeben wird, wird ein Patch auf der Standardausgabe generiert
--an Ort und Stelle
Nehmen Sie die Änderung direkt an der Datei vor
--out-place
Speichern Sie Änderungen in einer .cocci_res-Datei
--Version
Zeigt die Version von Spatch an
--Datum Zeigt das Datum an, an dem Spatch kompiliert wurde
--shorthelp
siehe kurze Liste der Optionen
- lange Hilfe
Sehen Sie sich alle verfügbaren Optionen in verschiedenen Kategorien an
-Hilfe, --help
Zusammenfassung der Optionen anzeigen.
Beispiele:
./spatch --sp-file foo.cocci foo.c
Wenden Sie den semantischen Patch foo.cocci auf die C-Datei foo.c an. Der semantische Patch wird angewendet
modulo eine Reihe von Isomorphismen, die in standard.iso enthalten sind (standard.iso befindet sich standardmäßig).
in @SHAREDIR@/standard.iso). Ein Patch, der die Wirkung der Anwendung (falls vorhanden) zeigt, wird dies tun
auf der Standardausgabe generiert werden.
./spatch --sp-file foo.cocci foo.c -o /tmp/newfoo.c
Dasselbe wie oben, außer dass eine modifizierte Version von foo.c in /tmp/newfoo.c gespeichert ist.
Es ist auch möglich, Spatch auf alle C-Dateien in einem Verzeichnis anzuwenden:
./spatch --cocci-file foo.cocci --dir foodir
Wenn der semantische Patch nicht wie erwartet funktioniert, zeigt die Option --debug die Auswahl an
Informationen über die Anwendung eines semantischen Patches auf eine Datei oder ein Verzeichnis.
MEHR ERFAHREN OPTIONAL
HAUPTOPTIONEN
--sp-Datei
die semantische Patchdatei
-o die Ausgabedatei
--an Ort und Stelle
Nehmen Sie die Änderung direkt an der Datei vor
--backup-suffix
Suffix, das beim Erstellen einer Inplace-Sicherung verwendet werden soll
--out-place
Speichern Sie Änderungen in einer .cocci_res-Datei
--umkehren
Invertieren Sie den semantischen Patch, bevor Sie ihn anwenden
-U Anzahl der Diff-Kontextzeilen festlegen
--partial-match
Teilübereinstimmungen des SP in der C-Datei melden
--iso-Datei
(Standard=/usr/local/lib/coccinelle/standard.iso)
--macro-datei
--macro-file-builtins
(Standard=/usr/local/lib/coccinelle/standard.h)
--recursive-includes
bewirkt, dass alle verfügbaren Include-Dateien, sowohl die in der/den C-Datei(en) enthaltenen als auch die
in Header-Dateien enthalten, zur Verwendung
--all-includes
bewirkt, dass alle verfügbaren Include-Dateien verwendet werden, die in der/den C-Datei(en) enthalten sind
--no-includes
bewirkt, dass nicht einmal lokale Include-Dateien verwendet werden
--local-includes
bewirkt, dass lokale Include-Dateien verwendet werden
--ignore-unknown-options
Zur Integration in eine Toolchain (muss vor der ersten unbekannten Option gesetzt werden)
--include-header
Header-Dateien unabhängig verarbeiten
-I Enthält die Header-Dateien (optional)
--vorverarbeiten
Führen Sie den C-Präprozessor aus, bevor Sie die semantische Übereinstimmung anwenden
-c gcc/cpp-Kompatibilitätsmodus
--dir Verarbeiten Sie alle Dateien im Verzeichnis rekursiv
--use-glimpse
arbeitet mit --dir, verwenden Sie von glimpseindex generierte Informationen
--benutze Google
Finden Sie relevante Dateien mithilfe der Google-Codesuche
--use-idutils
Finden Sie relevante Dateien mit id-utils
- Patch
Pfadname, für den ein Patch erstellt werden soll
„“ für eine Datei im aktuellen Verzeichnis
--kbuild-info
verbessern --dir durch Gruppieren verwandter C-Dateien
--pyoutput
Legt die Ausgaberoutine fest: Standardwerte:
--Version
rate mal was
--Datum rate mal was
--shorthelp
siehe kurze Liste der Optionen
- lange Hilfe
Sehen Sie sich alle verfügbaren Optionen in verschiedenen Kategorien an
Aliase und veraltete Optionen
--sp Befehlszeilen-Semantik-Patch
- iso kurze Option von --iso-Datei
--cocci-Datei
die semantische Patchdatei
NÜTZLICHSTE SHOW-OPTIONEN
--show-diff
--no-show-diff
--force-diffshow
diff, auch wenn sich nur der Abstand ändert
--show-flow
--ctl-inline-let
--ctl-show-mcodekind
--show-bindings
--show-transinfo
--show-misc
--show-trying
Zeigt den Namen jeder verarbeiteten Funktion an
--show-dependencies
Zeigt die mit jeder Regel verbundenen Abhängigkeiten an
AUSFÜHRLICHE SUBSYSTEMOPTIONEN
--verbose-ctl-engine
--verbose-match
--verbose-engine
--graphical-trace
Generieren Sie eine PDF-Datei, die den Matching-Prozess darstellt
--gt-without-label
Grafikbeschriftung entfernen (Option erforderlich). -grafische-trace)
--parse-error-msg
--verbose-parsing
--type-error-msg
WEITERE SHOW-OPTIONEN
--show-c
--show-cocci
--show-before-fixed-flow
--show-ctl-tex
--show-ctl-text
--show-SP
DEBUG C PARSING/UNPARSING
--debug-cpp
--debug-lexer
--debug-etdt
--debug-typedef
--filter-msg
Filtern Sie einige CPP-Nachrichten, wenn das Makro ein „bekanntes“ CPP-Konstrukt ist
--filter-define-error
--filter-msg-define-error
Filtern Sie die Fehlermeldung
--filter-passed-level
--debug-unparsing
VERKÜRZUNG ZUM SOFORTIGEN AKTIVIEREN/DEAKTIVIEREN EINER REIHE VON Debugging-Optionen
--ruhig
--sehr ruhig
--debuggen
--Pad
BANKOPTIONEN
--Profil
Sammeln Sie Zeitinformationen über die wichtigsten Coccinelle-Funktionen
--Bank
zur Profilierung der CTL-Engine
--Auszeit
Timeout in Sekunden
--Schritte
Maximale Anzahl von Modellprüfungsschritten pro Codeeinheit
--iso-limit
Maximale Tiefe der ISO-Anwendung
--no-iso-limit
Deaktivieren Sie die Begrenzung der maximalen Tiefe der ISO-Anwendung
--track-iso
Sammeln Sie Informationen über die Verwendung von Isomorphismus
--disable-iso
Deaktivieren Sie einen bestimmten Isomorphismus
--profile-iso
Sammeln Sie Informationen über die Kosten der Isomorphismusnutzung
ÄNDERUNG DER ALGORITHMUSOPTIONEN
--keep-comments
Behalten Sie Kommentare zu entferntem Code bei
--Schleife
--no-loops
Alle aus Schleifenkonstrukten abgeleiteten Hinterkanten löschen – unsicher
--no-gotos
Alle von Gotos abgeleiteten Sprünge fallen lassen - unsicher
--no-saved-typedefs
Löschen Sie alle abgeleiteten Typdefinitionen von einer Analyse eines Codes zur nächsten
--ocaml-regexps
Verwenden Sie reguläre OCaml Str-Ausdrücke für Einschränkungen
--l1
--ifdef-to-if
ifdef in if konvertieren (experimentell)
--no-ifdef-to-if
ifdef in if konvertieren (experimentell)
--disable-multi-pass
--noif0-passing
--definiert
--nicht definiert
--noadd-typedef-root
--disallow-nested-exps
Verhindern Sie, dass ein Ausdrucksmuster einen Begriff und seinen Unterbegriff abgleicht
--disable-worthy-trying-opt
--only-return-is-error-exitif Wenn dieses Flag nicht gesetzt ist, sind „Break“ und „Fortfahren“ ebenfalls Fehler
Ausgänge
--allow-inconsistent-paths
Wenn dieses Flag gesetzt ist, prüfen Sie nicht, ob inkonsistente Pfade vorhanden sind. gefährlich
--no-safe-expressions
Machen Sie einen Ausdruck zu einer Disjunktion und priorisieren Sie nicht die oberste Disjunktion
--int-bits
die Anzahl der Bits in einem vorzeichenlosen int
--long-bits
die Anzahl der Bits in einem unsigned long
--linux-spacing
Der Abstand von +-Code folgt den Konventionen von Linux
--smpl-spacing
Der Abstand von + Code folgt dem semantischen Patch
-D geben an, dass eine virtuelle Regel als erfüllt betrachtet werden sollte
--C++ Machen Sie einen kleinen Versuch, C++-Dateien zu analysieren. Die unterstützten Erweiterungen für Quelldateien
sind .cpp, .cxx, .cc und für Header-Dateien sind .h, .hpp und .hxx. Beachten Sie, dass dies
Option deaktiviert die Verarbeitung von .c-Dateien, da das Verhalten von Coccinelle anders ist
C ++.
VERSCHIEDENE OPTIONEN
- Debugger
Option zum Festlegen, ob Spatch in ocamldebug gestartet wird
--disable-once
um weitere Nachrichten zu drucken
--show-trace-profile
Spur zeigen
--save-tmp-files
GLEICHZEITIGKEIT
--Index
Der Prozessor, der für diesen Spatch-Lauf verwendet werden soll
--max die Anzahl der verfügbaren Prozessoren
--mod-distrib
Verwenden Sie Mod, um Dateien auf die Prozessoren zu verteilen
PAD-OPTIONEN
--Cache verwenden
Verwenden Sie die vorab analysierte zwischengespeicherte C-Datei .ast_raw
--cache-Präfix
Verzeichnis der zwischengespeicherten ASTs, Sätze --Cache verwenden
--cache-limit
maximale Anzahl zwischengespeicherter ASTs, Sätze --Cache verwenden
TESTMODUS UND TESTOPTIONEN (FUNKTIONIERT MIT TESTS/ ODER .OK-DATEIEN)
Die Testoptionen funktionieren nicht mit dem --sp-Datei und so weiter.
--Prüfung Spatch für Tests/Datei starten.[c,cocci]
--testall
Starten Sie Spatch für alle Dateien in Tests/mit einer .res
--test-okfailed
generiert .{ok,failed,spatch_ok}-Dateien mithilfe von .res-Dateien
--test-regression-okfailed
Verarbeiten Sie die .{ok,failed,spatch_ok}-Dateien im aktuellen Verzeichnis
--compare-with-expected
Verwenden Sie auch file.res
--expected-score-file
mit welcher Partiturdatei verglichen werden soll --testall
--no-update-score-file
Aktualisieren Sie die Partiturdatei nicht, wenn --testall gelingt
--relax-include-path
AKTIONSMODUS
Die Aktionsoptionen funktionieren nicht mit dem --sp-Datei und so weiter. Es ist für den anderen
(interne) Verwendungen des Spatch-Programms.
--tokens-c
--parse-c
--parse-h
--parse-ch
--parse-i
--parsen
--show-flow
--control-flow
--control-flow-to-file
--test-cfg-ifdef
--parse-unparse
--type-c
--compare-c
--comment-annotator-c
--compare-c-hardcoded
--test-attributes
--test-cpp
--extract-macros
--extract-macros-select
--xxx <>
--parse-cocci
--compare-c
Verwenden Sie Spatch online über die Dienste von onworks.net
