Szybki start: analiza kodu C/C++

Jakość aplikacji można poprawić, uruchamiając regularnie analizę kodu w kodzie C lub C++. Analiza kodu może pomóc w znalezieniu typowych problemów i naruszeń dobrej praktyki programistycznej. I znajduje wady, które są trudne do odnalezienia w ramach testowania. Ostrzeżenia różnią się od błędów i ostrzeżeń kompilatora: wyszukuje określone wzorce kodu, które są znane jako przyczyna problemów. Oznacza to, że kod jest prawidłowy, ale nadal może tworzyć problemy, zarówno dla Ciebie, jak i dla innych osób, które używają kodu.

Konfigurowanie zestawów reguł dla projektu

  1. W Eksplorator rozwiązań otwórz menu skrótów dla nazwy projektu, a następnie wybierz pozycję Właściwości.

  2. Opcjonalnie na liście Konfiguracja i platforma wybierz konfigurację kompilacji i platformę docelową.

  3. Aby uruchomić analizę kodu za każdym razem, gdy projekt jest kompilowany przy użyciu wybranej konfiguracji, zaznacz pole wyboru Włącz analizę kodu w kompilacji . Możesz również uruchomić analizę kodu ręcznie, otwierając menu Analizuj, a następnie wybierając polecenie Uruchom analizę kodu wprogramie ProjectName lub Uruchom analizę kodu w pliku.

  4. Wybierz zestaw reguł, którego chcesz użyć, lub utwórz niestandardowy zestaw reguł. Jeśli używasz maszyny wirtualnej LLVM/clang-cl, zobacz Konfigurowanie opcji analizy Clang-Tidy przy użyciu języka Clang-Tidy w programie Visual Studio .

Standardowe zestawy reguł C/C++

Program Visual Studio zawiera następujące standardowe zestawy reguł dla kodu natywnego:

Zestaw reguł opis
Podstawowe reguły arytmetyczne sprawdzania języka C++ Te reguły wymuszają kontrole związane z operacjami arytmetycznymi z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły sprawdzania granic języka C++ Te reguły wymuszają profil Granic wytycznych podstawowych języka C++.
Podstawowe reguły sprawdzania klas języka C++ Te reguły wymuszają kontrole związane z klasami z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły sprawdzania współbieżności języka C++ Te reguły wymuszają kontrole związane z współbieżnością z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły sprawdzania const języka C++ Te reguły wymuszają kontrole związane z const z wytycznych podstawowych języka C++.
Podstawowe reguły deklaracji sprawdzania języka C++ Te reguły wymuszają kontrole związane z deklaracjami z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły wyliczenia sprawdzania języka C++ Te reguły wymuszają kontrole związane z wyliczeniami z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły sprawdzania kodu C++ — eksperymentalne Te reguły zbierają niektóre testy eksperymentalne. W końcu oczekujemy, że te kontrole zostaną przeniesione do innych zestawów reguł lub całkowicie usunięte.
Podstawowe reguły funkcji sprawdzania języka C++ Te reguły wymuszają kontrole związane z funkcjami z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły sprawdzania GSL języka C++ Te reguły wymuszają kontrole związane z biblioteką pomocy technicznej wytycznych z podstawowych wytycznych dotyczących języka C++.
Reguły okresu istnienia sprawdzania rdzeni języka C++ Te reguły wymuszają profil istnienia podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły wskaźnika właściciela sprawdzania języka C++ Te reguły wymuszają kontrole zarządzania zasobami związane z owner<T> podstawowymi wytycznymi języka C++.
Podstawowe reguły sprawdzania wskaźnika podstawowego języka C++ Te reguły wymuszają kontrole zarządzania zasobami związane z nieprzetworzonymi wskaźnikami z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły sprawdzania języka C++ Te reguły wymuszają podzbiór testów z podstawowych wytycznych dotyczących języka C++. Użyj tego zestawu reguł, aby uwzględnić wszystkie reguły sprawdzania podstawowego języka C++ z wyjątkiem zestawów reguł wyliczenia i eksperymentalnych.
Podstawowe reguły wskaźnika sprawdzania kodu C++ Te reguły wymuszają kontrole zarządzania zasobami związane z typami z semantykami współużytkowanych wskaźników z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły sprawdzania biblioteki STL języka C++ Te reguły wymuszają kontrole związane z biblioteką standardową języka C++ z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły stylu sprawdzania języka C++ Te reguły wymuszają kontrole związane z używaniem wyrażeń i instrukcji z podstawowych wytycznych dotyczących języka C++.
Podstawowe reguły typów sprawdzania języka C++ Te reguły wymuszają profil typu wytycznych podstawowych języka C++.
Podstawowe reguły sprawdzania unikatowych wskaźników języka C++ Te reguły wymuszają kontrole zarządzania zasobami związane z typami z unikatowymi semantykami wskaźnika z podstawowych wytycznych dotyczących języka C++.
Reguły sprawdzania współbieżności Te reguły wymuszają zestaw testów wzorca współbieżności Win32 w języku C++.
Reguły współbieżności Dodaje reguły współbieżności z podstawowych wytycznych języka C++ do reguł sprawdzania współbieżności.
Minimalna reguła natywna firmy Microsoft Te reguły koncentrują się na najbardziej krytycznych problemach w kodzie natywnym, w tym potencjalnych awariach luk w zabezpieczeniach i awariach aplikacji. Zalecamy dołączenie tego zestawu reguł do dowolnego niestandardowego zestawu reguł utworzonego dla projektów natywnych.
Zalecane reguły natywne firmy Microsoft Te reguły koncentrują się na najbardziej krytycznych i typowych problemach w kodzie natywnym. Te problemy obejmują potencjalne luki w zabezpieczeniach i awarie aplikacji. Zalecamy dołączenie tego zestawu reguł do dowolnego niestandardowego zestawu reguł utworzonego dla projektów natywnych. Ten zestaw reguł jest przeznaczony do pracy z programem Visual Studio Professional i nowszym. Zawiera wszystkie reguły w regułach minimalnych natywnych firmy Microsoft.

Program Visual Studio zawiera następujące standardowe zestawy reguł dla kodu zarządzanego:

Zestaw reguł opis
Podstawowe reguły poprawności firmy Microsoft Te reguły koncentrują się na błędach logiki i typowych błędach występujących w użyciu interfejsów API platformy. Uwzględnij ten zestaw reguł, aby rozwinąć listę ostrzeżeń zgłaszanych przez minimalne zalecane reguły.
Reguły wytycznych dotyczących projektowania podstawowego firmy Microsoft Te reguły koncentrują się na wymuszaniu najlepszych rozwiązań, aby kod był łatwy do zrozumienia i użycia. Uwzględnij ten zestaw reguł, jeśli projekt zawiera kod biblioteki lub chcesz wymusić najlepsze rozwiązania w celu łatwego utrzymania kodu.
Rozszerzone reguły poprawności firmy Microsoft Te reguły rozszerzają podstawowe reguły poprawności, aby zmaksymalizować zgłoszone błędy użycia logiki i struktury. Dodatkowy nacisk kładzie się na konkretne scenariusze, takie jak międzyoperacyjności modelu COM i aplikacje mobilne. Rozważ uwzględnienie tego zestawu reguł, jeśli jeden z tych scenariuszy ma zastosowanie do projektu lub aby znaleźć więcej problemów w projekcie.
Reguły wytycznych dotyczących projektowania rozszerzonego firmy Microsoft Te reguły rozszerzają podstawowe reguły wytycznych dotyczących projektowania, aby zmaksymalizować zgłoszone problemy z użytecznością i możliwościami konserwacji. Dodatkowym naciskiem na wytyczne dotyczące nazewnictwa. Rozważ uwzględnienie tego zestawu reguł, jeśli projekt zawiera kod biblioteki lub jeśli chcesz wymusić najwyższe standardy pisania kodu możliwego do utrzymania.
Reguły globalizacji firmy Microsoft Te reguły koncentrują się na problemach, które uniemożliwiają poprawne wyświetlanie danych w aplikacji w przypadku użycia w różnych językach, ustawieniach regionalnych i kulturach. Uwzględnij ten zestaw reguł, jeśli aplikacja jest zlokalizowana i/lub zglobalizowana.
Minimalne reguły zarządzane przez firmę Microsoft Te reguły koncentrują się na najbardziej krytycznych problemach w kodzie, dla których analiza kodu jest najbardziej dokładna. Te reguły są małe i mają być uruchamiane tylko w ograniczonych wersjach programu Visual Studio. Użyj elementu MinimumRecommendedRules.ruleset z innymi wersjami programu Visual Studio.
Zalecane reguły zarządzane przez firmę Microsoft Te reguły koncentrują się na najbardziej krytycznych problemach w kodzie. Te problemy obejmują potencjalne dziury zabezpieczeń, awarie aplikacji oraz inne ważne błędy logiki i projektowania. Zalecamy dołączenie tego zestawu reguł do dowolnego niestandardowego zestawu reguł utworzonego dla projektów.
Minimalne reguły microsoft Mixed (C++ /CLR) Te reguły koncentrują się na najbardziej krytycznych problemach w projektach języka C++, które obsługują środowisko uruchomieniowe języka wspólnego. Te problemy obejmują potencjalne dziury zabezpieczeń, awarie aplikacji oraz inne ważne błędy logiki i projektowania. Zalecamy dołączenie tego zestawu reguł do dowolnego niestandardowego zestawu reguł utworzonego dla projektów języka C++, które obsługują środowisko uruchomieniowe języka Wspólnego.
Zalecane reguły microsoft Mixed (C++ /CLR) Te reguły koncentrują się na najczęstszych i krytycznych problemach w projektach języka C++, które obsługują środowisko uruchomieniowe języka wspólnego. Te problemy obejmują potencjalne dziury zabezpieczeń, awarie aplikacji oraz inne ważne błędy logiki i projektowania. Ten zestaw reguł jest przeznaczony do użycia w wersji Visual Studio Professional i nowszej.
Reguły zabezpieczeń firmy Microsoft Ten zestaw reguł zawiera wszystkie reguły zabezpieczeń firmy Microsoft. Uwzględnij ten zestaw reguł, aby zmaksymalizować liczbę zgłaszanych potencjalnych problemów z zabezpieczeniami.

Aby uwzględnić każdą regułę:

Zestaw reguł opis
Wszystkie reguły firmy Microsoft Ten zestaw reguł zawiera wszystkie reguły. Uruchomienie tego zestawu reguł może spowodować zgłaszanie dużej liczby ostrzeżeń. Użyj tego zestawu reguł, aby uzyskać kompleksowy obraz wszystkich problemów w kodzie. Może to pomóc w podjęciu decyzji, które z bardziej ukierunkowanych zestawów reguł są najbardziej odpowiednie do uruchamiania dla projektów.

Uruchamianie analizy kodu

Na stronie Analiza kodu okna dialogowego Właściwości projektu można skonfigurować analizę kodu do uruchamiania za każdym razem, gdy kompilujesz projekt. Możesz również ręcznie uruchomić analizę kodu.

Aby uruchomić analizę kodu w rozwiązaniu:

  • W menu Kompilacja wybierz pozycję Uruchom analizę kodu w rozwiązaniu.

Aby uruchomić analizę kodu w projekcie:

  1. W Eksplorator rozwiązań wybierz nazwę projektu.

  2. W menu Kompilacja wybierz pozycję Uruchom analizę kodu w poluNazwa projektu.

Aby uruchomić analizę kodu w pliku:

  1. W Eksplorator rozwiązań wybierz nazwę pliku.

  2. W menu Kompilacja wybierz pozycję Uruchom analizę kodu w pliku lub naciśnij klawisze Ctrl+Shift+Alt+F7.

    Projekt lub rozwiązanie jest kompilowane, a analiza kodu jest uruchamiana. Wyniki są wyświetlane w oknie Lista błędów.

Analizowanie i rozwiązywanie problemów z ostrzeżeniami analizy kodu

Okno Lista błędów zawiera listę znalezionych ostrzeżeń dotyczących analizy kodu. Wyniki są wyświetlane w tabeli. Jeśli więcej informacji o konkretnym ostrzeżeniu jest dostępnych, pierwsza kolumna zawiera kontrolkę rozszerzenia. Wybierz go, aby rozwinąć ekran, aby uzyskać dodatkowe informacje o problemie. Jeśli to możliwe, analiza kodu wyświetla numery wierszy i logikę analizy, która doprowadziła do ostrzeżenia.

Aby uzyskać szczegółowe informacje o ostrzeżeniu, w tym możliwe rozwiązania problemu, wybierz identyfikator ostrzeżenia w kolumnie Kod, aby wyświetlić odpowiedni artykuł pomocy online.

Kliknij dwukrotnie ostrzeżenie, aby przenieść kursor do wiersza kodu, który spowodował ostrzeżenie w edytorze kodu programu Visual Studio. Możesz też nacisnąć klawisz Enter w wybranym ostrzeżeniu.

Po zrozumieniu problemu możesz go rozwiązać w kodzie. Następnie ponownie uruchom analizę kodu, aby upewnić się, że ostrzeżenie nie jest już wyświetlane na liście błędów.

Tworzenie elementów roboczych dla ostrzeżeń analizy kodu

Funkcja śledzenia elementów roboczych umożliwia rejestrowanie usterek z poziomu programu Visual Studio. Aby użyć tej funkcji, należy nawiązać połączenie z wystąpieniem usługi Azure DevOps Server (dawniej Team Foundation Server).

Aby utworzyć element roboczy dla co najmniej jednego ostrzeżenia kodu C/C++

  1. Na liście błędów rozwiń i wybierz ostrzeżenia

  2. W menu skrótów dla ostrzeżeń wybierz pozycję Utwórz element roboczy, a następnie wybierz typ elementu roboczego.

  3. Program Visual Studio tworzy pojedynczy element roboczy dla wybranych ostrzeżeń i wyświetla element roboczy w oknie dokumentu środowiska IDE.

  4. Dodaj wszelkie dodatkowe informacje, a następnie wybierz pozycję Zapisz element roboczy.

Wyszukiwanie i filtrowanie wyników analizy kodu

Można przeszukiwać długie listy komunikatów ostrzegawczych i filtrować ostrzeżenia w rozwiązaniach obejmujących wiele projektów.

  • Aby filtrować ostrzeżenia według tytułu lub identyfikatora ostrzeżenia: wprowadź słowo kluczowe w polu Lista błędów wyszukiwania.

  • Aby filtrować ostrzeżenia według ważności: domyślnie komunikaty analizy kodu mają przypisaną ważność Ostrzeżenie. Ważność co najmniej jednego komunikatu można przypisać jako Błąd w niestandardowym zestawie reguł. W kolumnie Ważność listy błędów wybierz strzałkę listy rozwijanej, a następnie ikonę filtru. Wybierz pozycję Ostrzeżenie lub Błąd , aby wyświetlić tylko komunikaty, które mają przypisaną odpowiednią ważność. Wybierz pozycję Wybierz wszystko , aby wyświetlić wszystkie komunikaty.

Zobacz też