Sdílet prostřednictvím


Jak spustit analýzu kódu pro ovladače

Analýza kódu pro ovladače poskytuje informace o možných vadách ve zdrojovém kódu. Analýzu kódu můžete spustit ručně a můžete také spouštět analýzu kódu automaticky s každým sestavením.

V tomto tématu:

Důležité

Analýza kódu pro ovladače je k dispozici ve Windows 24H2 WDK a EWDK, ale upozorňujeme, že se plánuje její vyřazení v budoucnu.
V budoucnu bude CodeQL primárním nástrojem pro statickou analýzu ovladačů. CodeQL poskytuje výkonný dotazovací jazyk, který zpracovává kód jako databázi, která se má dotazovat, což usnadňuje psaní dotazů pro konkrétní chování, vzory a další. Další informace o použití CodeQL naleznete v tématu CodeQL a Static Tools Logo Test.

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

Ruční spuštění analýzy kódu ve zdrojovém kódu ovladače

  1. V sadě Visual Studio vyberte soubor projektu nebo řešení ovladače a vyberte konfiguraci a platformu projektu, které chcete analyzovat.
  2. V nabídce Analyzovat nebo sestavit klikněte na Spustit analýzu kódu v řešení.

Provést analýzu kódu na zdrojovém kódu ovladače automaticky při každém sestavení

  1. V sadě Visual Studio klikněte pravým tlačítkem myši na projekt nebo řešení ovladače v Průzkumníku řešení a klikněte na příkaz Vlastnosti.
  2. V dialogovém okně vlastnosti projektu klikněte na tlačítko Analýza kódu.
  3. Na stránce Vlastnosti analýzy kódu pro C/C++ vyberte konfiguraci a platformu projektu, kterou chcete analyzovat (například Windows 8 a Win32).
  4. Vyberte Povolit analýzu kódu pro C/C++ při sestavení.
  5. V části Sada pravidel vyberte Doporučená pravidla ovladače Společnosti Microsoft. Toto je výchozí sada pravidel pro řidiče.
  6. V nabídce Sestavení klikněte na Sestavit řešení.

Zobrazení výsledků analýzy kódu

Pokud jsou ve zdrojovém kódu nalezeny možné vady, zobrazí se v okně Výsledky analýzy kódu číslo upozornění analýzy kódu a číslo řádku ve zdrojovém souboru, kde k chybě dochází.

Pro zobrazení vad

  1. V okně Výsledky analýzy kódu klikněte na číslo řádku a v okně Výsledky analýzy kódu se zobrazí popis chyby.

    V okně Kód se zobrazí zdrojový kód a indikuje, kde k chybě dochází.

  2. Chcete-li zjistit více o konkrétním upozornění, klikněte na upozornění v okně Výsledky analýzy kódu.

Zobrazení souboru protokolu analýzy kódu přidruženého k sestavení

  1. Přejděte do adresáře pro konfiguraci sestavení a platformu (například \\Windows7Release\\x64).
  2. Pokud použijete doporučená pravidla, soubor protokolu se nazývá vc.\*codeanalysis.xml. Pokud vytváříte ovladač pro Windows Server 2012, tento soubor slouží k vytvoření protokolu ověření ovladače.

Potlačení hlášení vad

V některých případech můžete chtít potlačit zprávu konkrétního upozornění, například když je upozornění především informativního charakteru a znáte příčinu chyby.

Potlačit varovné zprávy

  1. Pro odebrání instance ohlášené chyby vyberte číslo řádku, a upozornění v okně Výsledky analýzy kódu.

  2. V rozbaleném popisu upozornění klepněte na Akce>Potlačit zprávu>Ve zdroji.

    Direktiva pragma warning se specifikátorem suppress potlačí upozornění pouze pro řádek kódu, který bezprostředně následuje za příkazem #pragma warning.

    #pragma warning(suppress: 6014)
    

Změna limitů využití zásobníku pro upozornění C6262 pro ovladače režimu jádra

V uživatelském i jádrovém režimu je prostor zásobníku omezený, a pokud se nedaří potvrdit stránku zásobníku, dojde k výjimce přetečení zásobníku. Vysoké využití zásobníku je zvlášť důležité v režimu jádra, protože celkový dostupný prostor zásobníku je pouze 12 kB. Kód v režimu jádra by měl agresivně omezit použití zásobníku.

Nástroj pro analýzu kódu vydává upozornění C6262 , pokud se ve funkci používá více než 1 kB prostoru zásobníku. Pokud chcete prozkoumat funkce, které mohou být náročnější na zdroje, můžete přizpůsobit nebo snížit limit velikosti zásobníku, který používá C6262. Pokud limit prahové hodnoty zásobníku snížíte, nástroj Analýza kódu může potenciálně najít další problémy. Pak se můžete rozhodnout tyto problémy s používáním zásobníku vyřešit. Můžete například snížit prahovou hodnotu na 400 bajtů, abyste zjistili, jestli jiné funkce používají prostředky.

Přizpůsobení limitu velikosti zásobníků pro C6262

  1. Otevřete soubor projektu sady Visual Studio (.vcxproj) pro ovladač režimu jádra (nebo komponentu) v Poznámkovém bloku nebo jiném textovém editoru.
  2. Přidejte novou <ItemDefinitionGroup> pro kompilátor< ClCompile>.
  3. <Přidejte element PREfastAdditionalOptions> a nastavte stacksize< bajty>. Výchozí hodnota je stacksize1024.
     <ItemDefinitionGroup>
       <ClCompile>


      <!-- Change stack depth for C6262 from 1024 to 400 -->
      <PREfastAdditionalOptions>stacksize400</PREfastAdditionalOptions>

    </ClCompile>
  </ItemDefinitionGroup>
  1. Uložte soubor projektu. Spusťte Visual Studio, načtěte aktualizovaný projekt ovladače a spusťte analýzu kódu.

    Pokud se chcete vrátit k výchozímu nastavení 1 kB, vraťte změny provedené v souboru projektu nebo změňte hodnotu velikosti zásobníku na stacksize1024.

Upozornění analýzy kódu pro ovladače