Přehled analýzy kódu pro C/C++

Nástroj C/C++ Code Analysis informace o možných vadách ve zdrojovém kódu C/C++. Mezi běžné chyby kódování hlášené nástrojem patří přetečení vyrovnávací paměti, neinicializovaná paměť, dereference ukazatele s hodnotou null a nevrácení paměti a prostředků. Nástroj může také spustit kontroly proti C++ Core Guidelines.

Integrace integrovaného vývojového prostředí (IDE)

Nástroj pro analýzu kódu je plně integrovaný v rámci Visual Studio IDE.

Během procesu sestavení se v sestavě zobrazí upozornění vygenerovaná pro zdrojový kód Seznam chyb. Můžete přejít ke zdrojovému kódu, který způsobil upozornění, a zobrazit další informace o příčině a možných řešeních problému.

Podpora příkazového řádku

Můžete také použít nástroj pro analýzu z příkazového řádku, jak je znázorněno v následujícím příkladu:

C:\>cl /analyze Sample.cpp

Visual Studio 2017 verze 15.7 a novější: Nástroj můžete spustit z příkazového řádku s libovolným systémem sestavení, včetně CMake.

#pragma podpory

Direktivu můžete použít k zobrazování upozornění jako k chybám, k povolení nebo zakázání upozornění a k potlačení upozornění pro #pragma jednotlivé řádky kódu. Další informace najdete v tématu Direktivy Pragma a klíčová _Pragma slova a.

Podpora poznámek

Poznámky zlepšují přesnost analýzy kódu. Poznámky poskytují další informace o podmínkách před a po pro parametry funkce a návratových typech. Další informace najdete v tématu Použití poznámek SAL ke snížení defektů kódu C/C++.

Spuštění analytického nástroje v rámci zásad check-in

Možná budete chtít, aby všechna přihlášení zdrojového kódu splňovala určité zásady. Konkrétně chcete zajistit, aby se analýza spouštěla jako krok nejnovějšího místního sestavení. Další informace o povolení zásad check-in analýzy kódu najdete v tématu Vytváření a používání zásad Code Analysis Check-In kódu.

Integrace týmového sestavení

Integrované funkce sestavovacího systému můžete použít ke spuštění nástroje pro analýzu kódu jako krok Azure DevOps procesu sestavení. Další informace najdete v tématu Azure Pipelines.

Viz také