Sdílet prostřednictvím


Rychlý start: Analýza kódu pro C/C++

Kvalitu aplikace můžete zlepšit pravidelným spouštěním analýzy kódu v kódu C nebo C++. Analýza kódu vám může pomoct najít běžné problémy a porušení osvědčených programovacích postupů. A zjistí vady, které je obtížné zjistit prostřednictvím testování. Jeho upozornění se liší od chyb a upozornění kompilátoru: Hledá konkrétní vzory kódu, které jsou známé, že způsobují problémy. To znamená, že kód, který je platný, ale může stále vytvářet problémy, ať už pro vás, nebo pro jiné uživatele, kteří váš kód používají.

Konfigurace sad pravidel pro projekt

  1. V Průzkumník řešení otevřete místní nabídku názvu projektu a pak zvolte Vlastnosti.

  2. Volitelně můžete v seznamech konfigurace a platformy zvolit konfiguraci sestavení a cílovou platformu.

  3. Pokud chcete spustit analýzu kódu při každém sestavení projektu pomocí vybrané konfigurace, zaškrtněte políčko Povolit analýzu kódu při sestavení . Analýzu kódu můžete spustit také ručně tak, že otevřete nabídku Analyzovat a pak zvolíte Spustit analýzu kódu v ProjectName nebo Spustit analýzu kódu v souboru.

  4. Zvolte sadu pravidel, kterou chcete použít, nebo vytvořte vlastní sadu pravidel. Pokud používáte LLVM/clang-cl, přečtěte si téma Použití jazyka Clang-Tidy v sadě Visual Studio ke konfiguraci možností analýzy Clang-Tidy.

Standardní sady pravidel C/C++

Visual Studio obsahuje tyto standardní sady pravidel pro nativní kód:

Sada pravidel Popis
Pravidla Aritmetické kontroly jádra C++ Tato pravidla vynucují kontroly související s aritmeickými operacemi z C++ Core Guidelines.
C++ Core Check Bounds Rules Tato pravidla vynucují profil Bounds v pokynech C++ Core Guidelines.
Pravidla třídy C++ Core Check Tato pravidla vynucují kontroly související s třídami z C++ Core Guidelines.
C++ Core Check Concurrency Rules Tato pravidla vynucují kontroly související se souběžností z C++ Core Guidelines.
C++ Core Check Const Rules Tato pravidla vynucují kontroly související s const z pravidel C++ Core Guidelines.
Pravidla deklarace C++ Core Check Tato pravidla vynucují kontroly související s deklaracemi z C++ Core Guidelines.
Pravidla výčtu C++ Core Check Tato pravidla vynucují kontroly související s výčtem z C++ Core Guidelines.
Experimentální pravidla kontroly jádra C++ Tato pravidla shromažďují některé experimentální kontroly. Nakonec očekáváme, že se tyto kontroly přesunou do jiných sad pravidel nebo se úplně odeberou.
Pravidla funkce C++ Core Check Tato pravidla vynucují kontroly související s funkcemi z C++ Core Guidelines.
C++ Core Check GSL Rules Tato pravidla vynucují kontroly související s knihovnou podpory pokynů z C++ Core Guidelines.
Pravidla životnosti kontroly jádra C++ Tato pravidla vynucují profil životnosti pravidel C++ Core Guidelines.
C++ Core – Kontrola pravidel ukazatele vlastníka Tato pravidla vynucují kontroly správy prostředků související s owner<T> pravidly C++ Core Guidelines.
Pravidla nezpracovaných ukazatelů kontroly jádra C++ Tato pravidla vynucují kontroly správy prostředků související s nezpracovaným ukazateli z pokynů C++ Core Guidelines.
Pravidla kontroly jádra C++ Tato pravidla vynucují podmnožinu kontrol z pravidel C++ Core Guidelines. Pomocí této sady pravidel můžete zahrnout všechna pravidla kontroly jádra C++ s výjimkou výčtu a experimentálních sad pravidel.
C++ Core – Kontrola sdílených pravidel ukazatelů Tato pravidla vynucují kontroly správy prostředků související s typy se sémantikou sdíleného ukazatele z C++ Core Guidelines.
C++ Core Check STL Rules Tato pravidla vynucují kontroly související se standardní knihovnou C++ z pravidel C++ Core Guidelines.
Pravidla stylu kontroly základního jazyka C++ Tato pravidla vynucují kontroly související s použitím výrazů a příkazů z C++ Core Guidelines.
Pravidla kontroly typů základního jazyka C++ Tato pravidla vynucují profil typu pokynů jazyka C++.
C++ Core – Kontrola jedinečných pravidel ukazatelů Tato pravidla vynucují kontroly správy prostředků související s typy s jedinečnou sémantikou ukazatelů z C++ Core Guidelines.
Pravidla kontroly souběžnosti Tato pravidla vynucují sadu kontrol vzoru souběžnosti Win32 v jazyce C++.
Pravidla souběžnosti Přidá pravidla souběžnosti z C++ Core Guidelines do pravidel kontroly souběžnosti.
Nativní minimální pravidla Microsoftu Tato pravidla se soustředí na nejdůležitější problémy v nativním kódu, včetně možných bezpečnostních děr a selhání aplikace. Tuto sadu pravidel doporučujeme zahrnout do jakékoli vlastní sady pravidel, kterou vytvoříte pro vaše nativní projekty.
Nativní doporučená pravidla Microsoftu Tato pravidla se zaměřují na nejdůležitější a nejběžnější problémy v nativním kódu. K těmto problémům patří potenciální bezpečnostní díry a chyby aplikací. Tuto sadu pravidel doporučujeme zahrnout do jakékoli vlastní sady pravidel, kterou vytvoříte pro vaše nativní projekty. Tato sada pravidel je navržená tak, aby fungovala s edicí Visual Studio Professional a vyšší verzí. Zahrnuje všechna pravidla v nativních minimálních pravidlech Microsoftu.

Visual Studio obsahuje tyto standardní sady pravidel pro spravovaný kód:

Sada pravidel Popis
Pravidla základní správnosti microsoftu Tato pravidla se zaměřují na chyby logiky a běžné chyby prováděné při používání rozhraní API architektury. Tuto sadu pravidel zahrňte tak, aby se rozbalil seznam upozornění hlášených minimálními doporučenými pravidly.
Pravidla základního návrhu microsoftu Tato pravidla se zaměřují na vynucování osvědčených postupů, aby byl kód snadno srozumitelný a použitelný. Tuto sadu pravidel zahrňte, pokud projekt obsahuje kód knihovny nebo pokud chcete vynutit osvědčené postupy pro snadno udržovatelný kód.
Microsoft Extended Correctness Rules Tato pravidla rozšiřují základní pravidla správnosti, aby maximalizovala hlášenou logiku a chyby použití architektury. Klademe důraz na konkrétní scénáře, jako je interoperabilita modelu COM a mobilní aplikace. Zvažte zahrnutí této sady pravidel, pokud některý z těchto scénářů platí pro váš projekt nebo pokud chcete najít další problémy v projektu.
Pravidla rozšířených zásad návrhu společnosti Microsoft Tato pravidla rozšiřují základní pravidla zásad návrhu, aby maximalizovala nahlášené problémy s použitelností a udržovatelností. Klademe důraz na pokyny pro pojmenování. Zvažte zahrnutí této sady pravidel, pokud projekt obsahuje kód knihovny nebo pokud chcete vynutit nejvyšší standardy pro psaní udržovatelného kódu.
Pravidla globalizace Microsoftu Tato pravidla se zaměřují na problémy, které brání správnému zobrazení dat v aplikaci při použití v různých jazycích, národních prostředích a jazykových verzích. Tuto sadu pravidel zahrňte, pokud je vaše aplikace lokalizovaná nebo globalizovaná.
Minimální pravidla spravované microsoftem Tato pravidla se zaměřují na nejdůležitější problémy ve vašem kódu, pro které je analýza kódu nejpřesnější. Tato pravidla jsou malá a jsou určená jenom pro spouštění v omezených edicích sady Visual Studio. Použijte MinimumRecommendedRules.ruleset s jinými edicemi sady Visual Studio.
Doporučená pravidla pro správu Microsoftu Tato pravidla se zaměřují na nejdůležitější problémy ve vašem kódu. Mezi tyto problémy patří potenciální bezpečnostní díry, chybové ukončení aplikace a další důležité chyby logiky a návrhu. Tuto sadu pravidel doporučujeme zahrnout do jakékoli vlastní sady pravidel, kterou vytvoříte pro své projekty.
Minimální pravidla Microsoft Mixed (C++ /CLR) Tato pravidla se zaměřují na nejdůležitější problémy v projektech C++, které podporují common language runtime. Mezi tyto problémy patří potenciální bezpečnostní díry, chybové ukončení aplikace a další důležité chyby logiky a návrhu. Tuto sadu pravidel doporučujeme zahrnout do jakékoli vlastní sady pravidel, kterou vytvoříte pro projekty C++, které podporují common language runtime.
Doporučená pravidla Microsoft Mixed (C++ /CLR) Tato pravidla se zaměřují na nejběžnější a kritické problémy v projektech C++, které podporují common language runtime. Mezi tyto problémy patří potenciální bezpečnostní díry, chybové ukončení aplikace a další důležité chyby logiky a návrhu. Tato sada pravidel je určená pro použití v edici Visual Studio Professional a vyšší.
Pravidla zabezpečení microsoftu Tato sada pravidel obsahuje všechna pravidla zabezpečení společnosti Microsoft. Zahrňte tuto sadu pravidel, která maximalizuje počet nahlášených potenciálních problémů se zabezpečením.

Zahrnutí každého pravidla:

Sada pravidel Popis
Microsoft All Rules Tato sada pravidel obsahuje všechna pravidla. Spuštění této sady pravidel může vést k velkému počtu nahlášených upozornění. Pomocí této sady pravidel získáte komplexní přehled o všech problémech v kódu. Může vám pomoct rozhodnout, které sady pravidel s větší zaměření jsou nejvhodnější pro vaše projekty.

Spuštění analýzy kódu

Na stránce Analýza kódu v dialogovém okně Vlastnosti projektu můžete nakonfigurovat analýzu kódu tak, aby se spouštěla při každém sestavení projektu. Analýzu kódu můžete spustit také ručně.

Spuštění analýzy kódu v řešení:

  • V nabídce Sestavení zvolte Spustit analýzu kódu v řešení.

Spuštění analýzy kódu v projektu:

  1. V Průzkumník řešení vyberte název projektu.

  2. V nabídce Sestavení zvolte Spustit analýzu kódu v názvu projektu.

Spuštění analýzy kódu v souboru:

  1. V Průzkumník řešení vyberte název souboru.

  2. V nabídce Sestavení zvolte Spustit analýzu kódu v souboru nebo stiskněte Kombinaci kláves Ctrl+Shift+Alt+F7.

    Projekt nebo řešení se zkompilují a spustí se analýza kódu. Výsledky se zobrazí v okně Seznam chyb.

Analýza a řešení upozornění analýzy kódu

Okno Seznam chyb obsahuje seznam nalezených upozornění analýzy kódu. Výsledky se zobrazí v tabulce. Pokud jsou k dispozici další informace o určitém upozornění, první sloupec obsahuje ovládací prvek rozšíření. Pokud chcete rozbalit zobrazení, zobrazí se další informace o problému. Pokud je to možné, analýza kódu zobrazí čísla řádků a logiku analýzy, která vedla k upozornění.

Podrobné informace o upozornění, včetně možných řešení problému, zvolte ID upozornění ve sloupci Kód, aby se zobrazil odpovídající online článek nápovědy.

Poklikáním na upozornění přesuňte kurzor na řádek kódu, který způsobil upozornění v editoru kódu sady Visual Studio. Nebo stiskněte Enter u vybraného upozornění.

Jakmile problém pochopíte, můžete ho vyřešit ve svém kódu. Pak znovu spusťte analýzu kódu, abyste měli jistotu, že se upozornění už nezobrazuje v seznamu chyb.

Vytváření pracovních položek pro upozornění analýzy kódu

Pomocí funkce sledování pracovních položek můžete protokolovat chyby ze sady Visual Studio. Pokud chcete tuto funkci použít, musíte se připojit k instanci Azure DevOps Serveru (dříve Team Foundation Server).

Vytvoření pracovní položky pro jedno nebo více upozornění kódu C/C++

  1. V seznamu chyb rozbalte a vyberte upozornění.

  2. V místní nabídce pro upozornění zvolte Vytvořit pracovní položku a pak zvolte typ pracovní položky.

  3. Visual Studio vytvoří jednu pracovní položku pro vybraná upozornění a zobrazí pracovní položku v okně dokumentu integrovaného vývojového prostředí (IDE).

  4. Přidejte další informace a pak zvolte Uložit pracovní položku.

Hledání a filtrování výsledků analýzy kódu

Můžete prohledávat dlouhé seznamy zpráv upozornění a můžete filtrovat upozornění v řešeních s více projekty.

  • Filtrování upozornění podle názvu nebo ID upozornění: Do pole Seznam chyb hledání zadejte klíčové slovo.

  • Filtrování upozornění podle závažnosti: Ve výchozím nastavení jsou zprávy analýzy kódu přiřazeny závažnosti Upozornění. Závažnost jedné nebo více zpráv můžete přiřadit jako chybu ve vlastní sadě pravidel. Ve sloupci Závažnost v seznamu chyb zvolte šipku rozevíracího seznamu a pak ikonu filtru. Chcete-li zobrazit pouze zprávy přiřazené odpovídající závažnosti, zvolte Upozornění nebo Chyba . Pokud chcete zobrazit všechny zprávy, zvolte Vybrat vše .

Viz také