Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan förbättra programmets kvalitet genom att köra kodanalys regelbundet på C- eller C++-kod. Kodanalys kan hjälpa dig att hitta vanliga problem och överträdelser av god programmeringspraxis. Och den hittar defekter som är svåra att upptäcka genom testning. Varningarna skiljer sig från kompilatorfel och varningar: Den söker efter specifika kodmönster som är kända för att orsaka problem. Det vill: kod som är giltig, men som fortfarande kan skapa problem, antingen för dig eller för andra personer som använder din kod.
Konfigurera regeluppsättningar för ett projekt
I Solution Explorer öppnar du snabbmenyn för projektnamnet och väljer sedan Egenskaper.
Du kan också välja byggkonfiguration och målplattform i listorna Konfiguration och plattform .
Om du vill köra kodanalys varje gång projektet skapas med den valda konfigurationen markerar du kryssrutan Aktivera kodanalys på build . Du kan också köra kodanalys manuellt genom att öppna menyn Analysera och sedan välja Kör kodanalys påProjectName eller Kör kodanalys på fil.
Välj den regeluppsättning som du vill använda eller skapa en anpassad regeluppsättning. Om du använder LLVM/clang-cl, se använda Clang-Tidy i Visual Studio för att konfigurera analysalternativ för Clang-Tidy.
Standard-C/C++-regeluppsättningar
Visual Studio innehåller dessa standarduppsättningar med regler för intern kod:
| Regeluppsättning | Beskrivning |
|---|---|
| C++ Kärnkontroll aritmetiska regler | Dessa regler framtvingar kontroller relaterade till aritmetiska åtgärder från C++ Core Guidelines. |
| Regler för granskning av gränser i C++ kärna | Dessa regler tillämpar gränsprofilen för C++ Core Guidelines. |
| C++ Kärnkontrollklassregler | Dessa regler framtvingar kontroller relaterade till klasser från C++ Core Guidelines. |
| C++ Core Check Konkurensregler | Dessa regler framtvingar kontroller relaterade till samtidighet från C++ Core Guidelines. |
| C++ Core Check Const Rules | Dessa regler tvingar igenom const-relaterade kontroller från C++ Core Guidelines. |
| C++ Grundläggande kontrolldeklarationsregler | Dessa regler framtvingar kontroller relaterade till deklarationer från C++ Core Guidelines. |
| C++ Core Check Enum-regler | Dessa regler tillämpar uppräkningsrelaterade kontroller från C++ Core Guidelines. |
| Experimentella regler för C++ Core Check | Dessa regler samlar in några experimentella kontroller. Slutligen förväntar vi oss att dessa kontroller flyttas till andra regeluppsättningar eller tas bort helt. |
| Funktionsregler för C++ Core Check | Dessa regler framtvingar kontroller relaterade till funktioner från C++ Core Guidelines. |
| C++ Core Check GSL-regler | Dessa regler svarar mot kontroller relaterade till Guidelines Support Library från C++ Core Guidelines. |
| Livslängdsregler för C++ Kärnkontroll | Dessa regler tillämpar livslängdsprofilen för C++ Core Guidelines. |
| C++ Core Check Owner Pointer Rules | Dessa regler tillämpar resurshanteringskontroller som är relaterade till owner<T> från C++ Core Guidelines. |
| C++ Core Check Raw Pointer Rules (Regler för grundkontroll av råpekare i C++) | Dessa regler tillämpar resurshanteringskontroller relaterade till rådata från C++ Core Guidelines. |
| C++ Kärnkontrollregler | Dessa regler framtvingar en delmängd av kontrollerna från C++ Core Guidelines. Använd den här regeluppsättningen om du vill inkludera alla C++ Core Check-regler förutom reglerna Uppräkning och Experiment. |
| C++ Kärnkontrollregler för shared pointer | Dessa regler tillämpar resurshanteringskontroller relaterade till typer med delad pekare semantik från C++ Core Guidelines. |
| C++ Core Check STL Rules | Dessa regler framtvingar kontroller relaterade till C++-standardbiblioteket från C++ Core Guidelines. |
| C++ Kärnkontrollformatregler | Dessa regler tillämpar kontroller som rör användning av uttryck och instruktioner från C++ Core Guidelines. |
| C++ Core Check Type Rules | Dessa regler tillämpar typprofilen för C++ Core Guidelines. |
| C++ Kärnkontrollregler för unika pekare | Dessa regler tillämpar resurshanteringskontroller relaterade till typer med unika pekarsemantik från C++ Core Guidelines. |
| Regler för samtidighetskontroll | Dessa regler tillämpar en uppsättning win32-samtidighetsmönsterkontroller i C++. |
| Konsekvensregler | Lägger till samtidighetsregler från C++ Core Guidelines till Regler för samtidighetskontroll. |
| Microsofts interna minimiregler | Dessa regler fokuserar på de mest kritiska problemen i din interna kod, inklusive potentiella säkerhetshål och programkrascher. Vi rekommenderar att du inkluderar den här regeluppsättningen i alla anpassade regeluppsättningar som du skapar för dina interna projekt. |
| Microsofts interna rekommenderade regler | Dessa regler fokuserar på de mest kritiska och vanliga problemen i din interna kod. Dessa problem omfattar potentiella säkerhetshål och programkrascher. Vi rekommenderar att du inkluderar den här regeluppsättningen i alla anpassade regeluppsättningar som du skapar för dina interna projekt. Den här regeluppsättningen är utformad för att fungera med Visual Studio Professional-utgåvan och högre. Den innehåller alla regler i Microsofts interna minimiregler. |
Visual Studio innehåller dessa standarduppsättningar med regler för hanterad kod:
| Regeluppsättning | Beskrivning |
|---|---|
| Microsofts grundläggande korrekthetsregler | Dessa regler fokuserar på logikfel och vanliga misstag vid användning av ramverks-API:er. Inkludera den här regeluppsättningen för att expandera listan över varningar som rapporterats av de minimalt rekommenderade reglerna. |
| Riktlinjer för Microsoft Basic-design | De här reglerna fokuserar på att främja bästa praxis för att göra koden lätt att förstå och använda. Inkludera den här regeluppsättningen om ditt projekt innehåller bibliotekskod eller om du vill tillämpa metodtips för lätthanterlig kod. |
| Microsofts Utökade Korrekthetsregler | Dessa regler utökar de grundläggande korrekthetsreglerna för att maximera de rapporterade logik- och ramverksanvändningsfelen. Extra vikt läggs vid specifika scenarier som COM-interop och mobila program. Överväg att inkludera den här regeluppsättningen om något av dessa scenarier gäller för projektet eller för att hitta fler problem i projektet. |
| Microsoft Utökade Designriktlinjer Regler | Dessa regler utökar de grundläggande designriktlinjerna för att maximera rapporterade problem med användbarhet och underhåll. Extra vikt läggs vid namngivningsriktlinjer. Överväg att inkludera den här regeluppsättningen om ditt projekt innehåller bibliotekskod eller om du vill tillämpa de högsta standarderna för att skriva underhållsbar kod. |
| Microsofts globaliseringsregler | Dessa regler fokuserar på problem som förhindrar att data i ditt program visas korrekt när de används på olika språk, nationella inställningar och kulturer. Inkludera den här regeluppsättningen om ditt program är lokaliserat och/eller globaliserat. |
| Microsofts hanterade minimiregler | Dessa regler fokuserar på de mest kritiska problemen i koden som kodanalys är mest exakt för. Dessa regler är små i antal och de är endast avsedda att köras i begränsade Visual Studio-utgåvor. Använd MinimumRecommendedRules.ruleset med andra Visual Studio-utgåvor. |
| Microsoft Hanterade Rekommenderade Regler | De här reglerna fokuserar på de mest kritiska problemen i koden. Dessa problem omfattar potentiella säkerhetshål, programkrascher och andra viktiga logik- och designfel. Vi rekommenderar att du inkluderar den här regeluppsättningen i alla anpassade regeluppsättningar som du skapar för dina projekt. |
| Lägsta regler för Microsoft Mixed (C++ /CLR) | De här reglerna fokuserar på de mest kritiska problemen i dina C++-projekt som stöder Common Language Runtime. Dessa problem omfattar potentiella säkerhetshål, programkrascher och andra viktiga logik- och designfel. Vi rekommenderar att du inkluderar den här regeluppsättningen i alla anpassade regeluppsättningar som du skapar för dina C++-projekt som stöder Common Language Runtime. |
| Rekommenderade regler för Microsoft Mixed (C++ /CLR) | De här reglerna fokuserar på de vanligaste och viktigaste problemen i dina C++-projekt som stöder Common Language Runtime. Dessa problem omfattar potentiella säkerhetshål, programkrascher och andra viktiga logik- och designfel. Den här regeluppsättningen är utformad för användning i Visual Studio Professional-utgåvan och högre. |
| Microsofts säkerhetsregler | Den här regeluppsättningen innehåller alla Microsoft-säkerhetsregler. Inkludera den här regeln för att maximera antalet potentiella säkerhetsproblem som rapporteras. |
Så här inkluderar du varje regel:
| Regeluppsättning | Beskrivning |
|---|---|
| Microsoft Samtliga Regler | Den här regeluppsättningen innehåller alla regler. Om du kör den här regeluppsättningen kan det leda till att ett stort antal varningar rapporteras. Använd den här regeluppsättningen för att få en omfattande bild av alla problem i koden. Det kan hjälpa dig att avgöra vilka av de mer fokuserade regeluppsättningarna som är lämpligast att köra för dina projekt. |
Köra kodanalys
På sidan Kodanalys i dialogrutan Projektegenskaper kan du konfigurera kodanalys så att den körs varje gång du skapar projektet. Du kan också köra kodanalys manuellt.
Så här kör du kodanalys på en lösning:
- I menyn Skapa väljer du Kör kodanalys på lösning.
Så här kör du kodanalys i ett projekt:
I Solution Explorer väljer du namnet på projektet.
På menyn Skapa väljer du Kör kodanalys påProjektnamn.
Så här kör du kodanalys på en fil:
I Solution Explorer väljer du namnet på filen.
I menyn Skapa väljer du Kör kodanalys på fil eller trycker på Ctrl+Skift+Alt+F7.
Projektet eller lösningen kompileras och kodanalys körs. Resultaten visas i fönstret Felrapport.
Analysera och lösa kodanalysvarningar
I fönstret Fellista visas de kodanalysvarningar som hittades. Resultatet visas i en tabell. Om det finns mer information om en viss varning innehåller den första kolumnen en expansionskontroll. Välj den för att expandera visningen för ytterligare information om problemet. När det är möjligt visar kodanalys de radnummer och analyslogik som ledde till varningen.
Om du vill ha detaljerad information om varningen, inklusive möjliga lösningar på problemet, väljer du varnings-ID:t i kolumnen Kod för att visa motsvarande onlinehjälpartikel.
Dubbelklicka på en varning för att flytta markören till den kodrad som orsakade varningen i kodredigeraren. Eller tryck på Retur på den valda varningen.
När du har förstått problemet kan du lösa det i koden. Kör sedan kodanalysen igen för att se till att varningen inte längre visas i fellistan.
Skapa arbetsobjekt för kodanalysvarningar
Du kan använda funktionen för spårning av arbetsobjekt för att logga buggar från Visual Studio. Om du vill använda den här funktionen måste du ansluta till en instans av Azure DevOps Server (tidigare Team Foundation Server).
Skapa ett arbetsobjekt för en eller flera C/C++-kodvarningar
I fellistan expanderar och väljer du varningarna
På snabbmenyn för varningarna väljer du Skapa arbetsobjekt och väljer sedan typ av arbetsobjekt.
Visual Studio skapar ett enda arbetsobjekt för de markerade varningarna och visar arbetsobjektet i ett dokumentfönster i IDE:n.
Lägg till ytterligare information och välj sedan Spara arbetsobjekt.
Resultat av sök- och filterkodanalys
Du kan söka i långa listor med varningsmeddelanden och du kan filtrera varningar i lösningar för flera projekt.
Så här filtrerar du varningar efter rubrik eller varnings-ID: Ange nyckelordet i rutan Sökfellista.
Så här filtrerar du varningar efter allvarlighetsgrad: Som standard tilldelas kodanalysmeddelanden allvarlighetsgraden Varning. Du kan tilldela allvarlighetsgraden för ett eller flera meddelanden som Fel i en anpassad regeluppsättning. I kolumnen Allvarlighetsgrad i fellistan väljer du listrutepilen och sedan filterikonen. Välj Varning eller Fel om du bara vill visa de meddelanden som har tilldelats respektive allvarlighetsgrad. Välj Välj alla om du vill visa alla meddelanden.