Wie verwendete ich die Inline -Unterdrückungsfilteroption von CPPCheck für C ++ - Code?
-
23-10-2019 - |
Frage
Ich möchte CPPcheck für die statische Codeanalyse meines C ++ - Code verwenden. Ich habe gelernt, dass ich eine Art Warnungen unterdrücken kann --inline-suppr
Befehl. Ich kann jedoch nicht finden, was ich in den Kommentar einfügen sollte:
// cppcheck-suppress "suppressed_error_id"
Lösung
Nach der CPPcheck -Hilfe:
Die Fehler -ID ist die ID, die Sie unterdrücken möchten. Der einfachste Weg, es zu erhalten, besteht darin, die Flagge -xml Befehlszeilen zu verwenden. Kopieren Sie die ID -Zeichenfolge aus der XML -Ausgabe.
Führen Sie also CPPcheck gegen einen Code aus, der den Fehler mit dem enthält --xml
Fahnen Sie und dann in die generierte XML -Datei suchen, um ihren Namen zu finden.
Andere Tipps
Sie können die Ausgabevorlage ändern, um die Fehler -ID aus der Befehlszeile anzuzeigen, die ziemlich ordentlich ist.
Fügen Sie diese für eine Visual Studio -Formatausgabe mit angezeigter Fehler -ID zu Ihrer Befehlszeile hinzu:
--template "{file}({line}): {severity} ({id}): {message}"
Dies erzeugt so etwas Ausgang:
s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY
Was Sie dann unterdrücken können, indem Sie die Linie hinzufügen:
// cppcheck-suppress bufferAccessOutOfBounds
In die vorherige Zeile in der Quelldatei.
Laut dem CPPcheck Man Page, du kannst den ... benutzen --template
Option zum Ändern der Standardausgabe in die ID, z. B.
cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
Wenn Sie die GUI verwenden, können Sie mit der rechten Maustaste auf die Nachricht klicken, die Sie unterdrücken möchten, um ein Menü aufzutauchen. Wählen Sie "Nachrichten -ID kopieren". Fügen Sie die Nachrichten -ID anstelle von "unterdrückte_error_id" in Ihren Code ein.