Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alkalmazás minőségét úgy javíthatja, hogy rendszeresen futtat kódelemzést C vagy C++ kódon. A kódelemzés segíthet megtalálni a helyes programozási gyakorlat gyakori problémáit és megsértését. És olyan hibákat talál, amelyeket nehéz felderíteni a tesztelés során. A figyelmeztetések eltérnek a fordítóhibáktól és a figyelmeztetésektől: Olyan kódmintákat keres, amelyekről ismert, hogy problémákat okoznak. Ez azt jelent, hogy a kód érvényes, de továbbra is problémákat okozhat Önnek vagy a kódot használó más személyeknek.
A projekt szabálykészleteinek konfigurálása
A Megoldáskezelőben nyissa meg a projektnév helyi menüjét, majd válassza a Tulajdonságok lehetőséget.
A Konfiguráció és platform listákban is kiválaszthatja a buildkonfigurációt és a célplatformot.
Ha minden alkalommal kódelemzést szeretne futtatni, amikor a projekt a kiválasztott konfigurációval készül, jelölje be a Kódelemzés engedélyezése buildeléskor jelölőnégyzetet. A kódelemzést manuálisan is futtathatja az Elemzés menü megnyitásával, majd a Kódelemzés futtatása aProjectName-en vagy a Kódelemzés futtatása fájlon lehetőséget választva.
Válassza ki a használni kívánt szabálykészletet , vagy hozzon létre egyéni szabálykészletet. Ha LLVM/clang-cl-t használ, olvassa el a Clang-Tidy használata a Visual Studióban Clang-Tidy elemzési beállítások konfigurálásához című témakört.
Standard C/C++ szabálykészletek
A Visual Studio a natív kódhoz az alábbi szabványos szabálykészleteket tartalmazza:
| Szabálykészlet | Leírás |
|---|---|
| C++ Alapvető ellenőrzési aritmetikai szabályok | Ezek a szabályok a C++ alapvető irányelveiből kényszerítik ki az aritmetikai műveletekhez kapcsolódó ellenőrzéseket. |
| C++ alapvető ellenőrzési korlátok szabályai | Ezek a szabályok a C++ alapvető irányelvek kötött határok profilját érvényesítik. |
| C++ alapvető ellenőrzési osztály szabályai | Ezek a szabályok a C++ alapvető irányelvek osztályaihoz kapcsolódó ellenőrzéseket kényszerítenek ki. |
| C++ Alapvető Ellenőrzési Párhuzamossági Szabályok | Ezek a szabályok az egyidejűséggel kapcsolatos ellenőrzéseket érvényesítik a C++ alapvető irányelvei alapján. |
| C++ Core Check Const Szabályok | Ezek a szabályok a C++ alapvető irányelvekből kényszerítik ki a konstansokkal kapcsolatos ellenőrzéseket. |
| C++ alapvető ellenőrzési deklarációs szabályok | Ezek a szabályok a C++ alapvető irányelvekből származó deklarációkkal kapcsolatos ellenőrzéseket kényszerítik ki. |
| C++ Core Check Enumerációs Szabályok | Ezek a szabályok enumerálással kapcsolatos ellenőrzéseket kényszerítenek ki a C++ alapvető irányelveiből. |
| C++ Alapvető ellenőrzési kísérleti szabályok | Ezek a szabályok kísérleti ellenőrzéseket gyűjtenek. Végül azt várjuk, hogy ezek az ellenőrzések más szabálykészletekbe kerülnek, vagy teljesen el lesznek távolítva. |
| C++ alapvető ellenőrzőfüggvény-szabályok | Ezek a szabályok a C++ alapvető irányelveiből kényszerítik ki a függvényekkel kapcsolatos ellenőrzéseket. |
| C++ alapszintű ellenőrzés GSL-szabályok | Ezek a szabályok az irányelvek támogatási kódtárával kapcsolatos ellenőrzéseket kényszerítik ki a C++ alapvető irányelvekből. |
| C++ alapvető ellenőrzési élettartam-szabályok | Ezek a szabályok a C++ alapvető irányelvek élettartamprofilját kényszerítik ki. |
| C++ Core Check tulajdonosi mutató szabályai | Ezek a szabályok a C++ alapvető irányelvekből származóowner<T> erőforrás-kezelési ellenőrzéseket kényszerítik ki. |
| C++ Core Check nyers mutató szabályai | Ezek a szabályok a C++ alapvető irányelvek nyers mutatóihoz kapcsolódó erőforrás-felügyeleti ellenőrzéseket kényszerítenek ki. |
| C++ alapvető ellenőrzési szabályok | Ezek a szabályok a C++ Alapirányelvek ellenőrzéseinek egy részhalmazát kényszerítik ki. Ez a szabálykészlet az Enum és a Kísérleti szabálykészletek kivételével az összes C++ alapvető ellenőrzési szabályt tartalmazza. |
| C++ Core – Megosztott mutató szabályainak ellenőrzése | Ezek a szabályok a C++ alapvető irányelvekből származó megosztott mutató szemantikával rendelkező típusokkal kapcsolatos erőforrás-felügyeleti ellenőrzéseket kényszerítenek ki. |
| C++ Alapvető ellenőrzési STL-szabályok | Ezek a szabályok a C++ standard kódtárhoz kapcsolódó ellenőrzéseket kényszerítik ki a C++ alapvető irányelvekből. |
| C++ alapvető ellenőrzési stílusszabályok | Ezek a szabályok a C++ alapvető irányelveiből származó kifejezések és utasítások használatával kapcsolatos ellenőrzéseket kényszerítenek ki. |
| C++ alapvető ellenőrzési típusszabályok | Ezek a szabályok a C++ alapvető irányelvek típusprofilját kényszerítik ki. |
| C++ Core – Egyedi mutatószabályok ellenőrzése | Ezek a szabályok a C++ alapvető irányelvekből származó egyedi mutató szemantikával rendelkező típusokkal kapcsolatos erőforrás-felügyeleti ellenőrzéseket kényszerítenek ki. |
| Egyidejűség-ellenőrzési szabályok | Ezek a szabályok win32 egyidejűségi mintaellenőrzéseket kényszerítenek ki a C++-ban. |
| Egyidejűségi szabályok | Egyidejűségi szabályokat ad hozzá a C++ alapvető irányelveiből az egyidejűségi ellenőrzési szabályokhoz. |
| A Microsoft natív minimális szabályai | Ezek a szabályok a natív kód legkritikusabb problémáira összpontosítanak, beleértve a lehetséges biztonsági réseket és az alkalmazás összeomlását. Javasoljuk, hogy vegye fel ezt a szabálykészletet a natív projektekhez létrehozott egyéni szabálykészletekbe. |
| A Microsoft natív ajánlott szabályai | Ezek a szabályok a natív kód legkritikusabb és leggyakoribb problémáira összpontosítanak. Ezek a problémák közé tartoznak a lehetséges biztonsági rések és az alkalmazás összeomlásai. Javasoljuk, hogy vegye fel ezt a szabálykészletet a natív projektekhez létrehozott egyéni szabálykészletekbe. Ez a szabálykészlet a Visual Studio Professional kiadás és újabb verziók használatához készült. Tartalmazza a Microsoft natív minimális szabályainak összes szabályát. |
A Visual Studio a felügyelt kódhoz az alábbi szabványos szabálykészleteket tartalmazza:
| Szabálykészlet | Leírás |
|---|---|
| A Microsoft alapszintű helyességi szabályai | Ezek a szabályok a keretrendszer API-k használatában előforduló logikai hibákra és gyakori hibákra összpontosítanak. Vegye fel ezt a szabálykészletet a minimálisan ajánlott szabályok által jelentett figyelmeztetések listájának bővítésére. |
| A Microsoft alapszintű tervezési útmutató szabályai | Ezek a szabályok az ajánlott eljárások kikényszerítésére összpontosítanak, hogy a kód könnyen érthető és használható legyen. Vegye fel ezt a szabálykészletet, ha a projekt kódtárkódot tartalmaz, vagy ha az ajánlott eljárásokat szeretné kikényszeríteni a könnyen karbantartható kód érdekében. |
| A Microsoft kiterjesztett helyességi szabályai | Ezek a szabályok az alapvető helyességi szabályokra bontva maximalizálják a jelentett logikai és keretrendszerhasználati hibákat. Külön hangsúlyt fektetünk olyan konkrét forgatókönyvekre, mint a COM interop és a mobilalkalmazások. Vegye figyelembe ezt a szabálykészletet, ha a fenti forgatókönyvek egyike vonatkozik a projektre, vagy ha további problémákat keres a projektben. |
| Microsoft Kiterjesztett Design Útmutató Szabályai | Ezek a szabályok az alapvető tervezési útmutatókra terjednek ki a jelentett használhatósági és karbantarthatósági problémák maximalizálása érdekében. Az elnevezési irányelvek nagyobb hangsúlyt kapnak. Vegye figyelembe ezt a szabálykészletet, ha a projekt kódtárkódot tartalmaz, vagy ha a legmagasabb szintű szabványokat szeretné érvényesíteni a karbantartható kód írásához. |
| Microsoft Globalization Rules | Ezek a szabályok olyan problémákra összpontosítanak, amelyek megakadályozzák, hogy az alkalmazásban lévő adatok megfelelően jelenjenek meg különböző nyelveken, területi beállításokban és kultúrákban való használat esetén. Adja meg ezt a szabálykészletet, ha az alkalmazás honosított és/vagy globalizált. |
| Microsoft által felügyelt minimális szabályok | Ezek a szabályok a kód legkritikusabb problémáira összpontosítanak, amelyeknél a kódelemzés a legpontosabb. Ezek a szabályok kis számúak, és csak korlátozott Visual Studio-kiadásokban való futtatásra szolgálnak. Használja a MinimumRecommendedRules.rulesetet más Visual Studio-kiadásokkal. |
| Microsoft által felügyelt ajánlott szabályok | Ezek a szabályok a kód legkritikusabb problémáira összpontosítanak. Ezek a problémák közé tartoznak a lehetséges biztonsági rések, az alkalmazás összeomlásai és egyéb fontos logikai és tervezési hibák. Javasoljuk, hogy ezt a szabálykészletet minden egyéni szabálykészletbe belefoglalja, amit a projektekhez hoz létre. |
| Microsoft Mixed (C++ /CLR) minimális szabályok | Ezek a szabályok a common language runtime-t támogató C++ projektek legkritikusabb problémáira összpontosítanak. Ezek a problémák közé tartoznak a lehetséges biztonsági rések, az alkalmazás összeomlásai és egyéb fontos logikai és tervezési hibák. Javasoljuk, hogy ezt a szabálykészletet minden olyan egyéni szabálykészletbe belefoglalja, amelyet a közös nyelvi futtatókörnyezetet támogató C++ projektekhez hoz létre. |
| Microsoft Mixed (C++ /CLR) ajánlott szabályok | Ezek a szabályok a common language runtime-t támogató C++ projektek leggyakoribb és kritikus problémáira összpontosítanak. Ezek a problémák közé tartoznak a lehetséges biztonsági rések, az alkalmazás összeomlásai és egyéb fontos logikai és tervezési hibák. Ez a szabálykészlet a Visual Studio Professional kiadásban és újabb verziókban való használatra lett kialakítva. |
| Microsoft biztonsági szabályok | Ez a szabálykészlet tartalmazza az összes Microsoft biztonsági szabályt. Adja hozzá ezt a szabálykészletet a jelentett potenciális biztonsági problémák számának maximalizálásához. |
Minden szabály belefoglalása:
| Szabálykészlet | Leírás |
|---|---|
| A Microsoft minden szabálya | Ez a szabálykészlet az összes szabályt tartalmazza. A szabálykészlet futtatása nagyszámú figyelmeztetést eredményezhet. Ezzel a szabálykészlettel átfogó képet kaphat a kód összes problémájáról. Segítségével eldöntheti, hogy a jobban összpontosított szabálykészletek közül melyik a legmegfelelőbb a projektek futtatásához. |
Kódelemzés futtatása
A Projekt tulajdonságai párbeszédpanel Kódelemzés lapján konfigurálhatja a kódelemzést úgy, hogy a projekt minden létrehozásakor fusson. A kódelemzést manuálisan is futtathatja.
Kódelemzés futtatása egy megoldáson:
- A Build menüben válassza a Kódelemzés futtatása a megoldáson lehetőséget.
A kódelemzés futtatása egy projekten:
A Megoldáskezelőben válassza ki a projekt nevét.
A Build menüben válassza a Kódelemzés futtatása projektnéven lehetőséget.
Kódelemzés futtatása fájlon:
A Megoldáskezelőben válassza ki a fájl nevét.
A Build menüben válassza a Kódelemzés futtatása fájlban lehetőséget, vagy nyomja le a Ctrl+Shift+Alt+F7 billentyűkombinációt.
A projekt vagy megoldás fordítása és a kódelemzés lefut. Az eredmények a Hibalista ablakban jelennek meg.
Kódelemzési figyelmeztetések elemzése és megoldása
A Hibalista ablak felsorolja a talált kódelemzési figyelmeztetéseket. Az eredmények egy táblázatban jelennek meg. Ha egy adott figyelmeztetésről további információ áll rendelkezésre, az első oszlop egy bővítő vezérlőelemet tartalmaz. Válassza ki, hogy kibontsa a kijelzőt a problémával kapcsolatos további információkért. Ha lehetséges, a kódelemzés megjeleníti a figyelmeztetéshez vezető sorszámokat és elemzési logikát.
A figyelmeztetésre vonatkozó részletes információkért, beleértve a probléma lehetséges megoldásait, válassza a Kód oszlopban található figyelmeztető azonosítót a megfelelő online súgócikk megjelenítéséhez.
Kattintson duplán egy figyelmeztetésre, ha a kurzort a kódszerkesztőben a figyelmeztetést okozó kódsorra szeretné áthelyezni. Vagy nyomja le az Enter billentyűt a kijelölt figyelmeztetésen.
Miután megismerte a problémát, a kódban meg tudja oldani. Ezután futtassa újra a kódelemzést, és győződjön meg arról, hogy a figyelmeztetés már nem jelenik meg a hibalistában.
Munkaelemek létrehozása kódelemzési figyelmeztetésekhez
A munkaelem-követési funkcióval naplózhatja a hibákat a Visual Studióban. A funkció használatához csatlakoznia kell az Azure DevOps Server (korábbi nevén Team Foundation Server) egy példányához.
Munkaelem létrehozása egy vagy több C/C++ kódra vonatkozó figyelmeztetéshez
A hibalistában bontsa ki és válassza ki a figyelmeztetéseket
A figyelmeztetések helyi menüjében válassza a Munkaelem létrehozása lehetőséget, majd válassza ki a munkaelem típusát.
A Visual Studio egyetlen munkaelemet hoz létre a kijelölt figyelmeztetésekhez, és megjeleníti a munkaelemet az IDE dokumentumablakában.
Adjon hozzá további információkat, majd válassza a Munkaelem mentése lehetőséget.
Kódelemzési eredmények keresése és szűrése
A figyelmeztető üzenetek hosszú listájában kereshet, és többprojektes megoldásokban szűrheti a figyelmeztetéseket.
A figyelmeztetések cím vagy figyelmeztetésazonosító szerinti szűréséhez írja be a kulcsszót a Keresési hibalista mezőbe.
A figyelmeztetések súlyosság szerinti szűréséhez: Alapértelmezés szerint a kódelemzési üzenetekhez a figyelmeztetés súlyossága van rendelve. Egy vagy több üzenet súlyosságát hibaként rendelheti hozzá egy egyéni szabálykészlethez. A HibalistaSúlyosság oszlopában válassza a legördülő nyilat, majd a szűrő ikont. A Figyelmeztetés vagy a Hiba lehetőséget választva csak a megfelelő súlyosságú üzenetek jelennek meg. Az összes üzenet megjelenítéséhez válassza az Összes kijelölése lehetőséget .