Aracılığıyla paylaş


Sürücüler için Kod Analizi çalıştırma

Sürücüler için Kod Analizi, kaynak koddaki olası hatalarla ilgili bilgi sağlar. Kod analizini el ile çalıştırabilir ve ayrıca her derlemede otomatik olarak kod analizi çalıştırabilirsiniz.

Bu konuda:

Önemli

Sürücüler için Kod Analizi, Windows 24H2 WDK ve EWDK'de kullanılabilir, ancak gelecekteki bir tarihte kullanımdan kaldırılacak şekilde ayarlandığını unutmayın.
Bundan sonra CodeQL, sürücüler için birincil statik analiz aracı olacaktır. CodeQL, kodu sorgulanacak bir veritabanı olarak değerlendiren ve belirli davranışlar, desenler ve daha fazlası için sorgu yazmayı basit hale getiren güçlü bir sorgu dili sağlar. CodeQL kullanma hakkında daha fazla bilgi için bkz. CodeQL ve Statik Araçlar Logo Testi.

Kod analizi çalıştırma

Sürücü kaynak kodunda el ile kod analizi çalıştırmak için

  1. Visual Studio'da sürücü proje dosyasını veya çözümünü seçin ve analiz etmek için proje yapılandırmasını ve platformu seçin.
  2. Çözümle veya Derleme menüsünde Çözüm Kod Çözümlemesi Çalıştır'atıklayın.

Her derlemede sürücü kaynak kodunda otomatik olarak kod analizi çalıştırmak için

  1. Visual Studio'da, Çözüm Gezgini sürücü projesine veya çözümüne sağ tıklayın ve Özellikleröğesine tıklayın.
  2. Projenin özellikler iletişim kutusunu açın ve Kod Çözümlemeöğesine tıklayın.
  3. C/C++ Özellikleri için Kod Analizi sayfasında, analiz etmek istediğiniz proje yapılandırmasını ve platformu seçin (örneğin, Windows 8 ve Win32).
  4. C/C++ için Derleme sırasında Kod Analizini Etkinleştirseçeneğini seçin.
  5. Kural kümesi'nin altında Microsoft Sürücü Önerilen Kurallarıöğesini seçin. Bu, sürücüler için varsayılan kural kümesidir.
  6. Derleme menüsünde Derleme Çözümüöğesine tıklayın.

Kod analizi sonuçlarını görüntüleme

Olası kusurlar kaynak kodda bulunursa, Kod Çözümleme Sonuçları penceresi, hatanın oluştuğu kaynak dosyada kod analizi uyarı numarasını ve satır numarasını görüntüler.

Hataları görüntülemek için

  1. Kod Çözümleme Sonuçları penceresinde satır numarasına tıklayın ve Kod Çözümleme Sonuçları penceresinde hatanın açıklaması görüntülenir.

    Kod penceresinde kaynak kod görüntülenir ve hatanın nerede oluştuğu gösterilir.

  2. Belirli bir uyarı hakkında daha fazla bilgi edinmek için Kod Çözümleme Sonuçları penceresindeki Uyarı'ya tıklayın.

Derlemeyle ilişkili kod analizi günlük dosyasını görüntülemek için

  1. Derleme yapılandırmanızın ve platformunuzun dizinine gidin (örneğin, \\Windows7Release\\x64).
  2. Önerilen kuralları kullanırsanız, günlük dosyası vc.\*codeanalysis.xmlolarak adlandırılır. Windows Server 2012 için bir sürücü oluşturuyorsanız, bu dosya Sürücü Doğrulama günlüğünü oluşturmak için kullanılır.

Hata raporunu gizleme

Bazı durumlarda, belirli bir uyarı iletisinin raporunu gizlemeniz gerekebilir; örneğin, uyarı öncelikli olarak bilgilendirme amaçlıysa ve hatanın nedenini biliyorsanız.

Uyarı iletilerini gizleme

  1. Bildirilen bir hatanın örneğini kaldırmak için Kod Çözümleme Sonuçları penceresinde satır numarasını ve uyarıyı seçin.

  2. Uyarının genişletilmiş açıklamasında, Eylemler>İletiyi Gizle>Kaynaküzerine tıklayın.

    Gizleme tanımlayıcısı içeren bir pragma uyarı yönergesi, uyarıyı yalnızca #pragma uyarı deyimini hemen izleyen kod satırı için bastırır.

    #pragma warning(suppress: 6014)
    

Çekirdek modu sürücüleri için C6262 uyarısı için yığın kullanım sınırlarını değiştirme

Kullanıcı modu ve çekirdek modu kodunda yığın alanı sınırlıdır ve yığın sayfası işlenememesi yığın taşması özel durumu oluşturur. Kullanılabilir toplam yığın alanı yalnızca 12 KB olduğundan, çekirdek modunda yüksek yığın kullanımı özellikle önemlidir. Çekirdek modu kodu, yığın kullanımını agresif bir şekilde sınırlamalıdır.

Kod Çözümleme aracı, bir işlevde yerel olarak 1 KB'tan fazla yığın alanı kullanılıyorsa C6262 uyarı oluşturur. Yoğun kaynak kullanımlı olabilecek işlevleri araştırmak istiyorsanız, C6262tarafından kullanılan yığın eşiği sınırını özelleştirebilir veya azaltabilirsiniz. Yığın eşiği sınırını düşürürseniz Kod Çözümleme aracı daha fazla sorun bulabilir. Daha sonra bu yığın kullanımı sorunlarını gidermeyi seçebilirsiniz. Örneğin, diğer işlevlerin kaynakları kullanıp kullanmadiğini görmek için eşiği 400 bayta düşürebilirsiniz.

C6262 için yığın boyutu sınırını özelleştirmek için

  1. Çekirdek modu sürücünüzün (veya bileşeninizin) Visual Studio proje dosyasını (.vcxproj) Not Defteri'nde veya başka bir metin düzenleyicisinde açın.
  2. ClCompile>derleyicisi<için yeni bir <ItemDefinitionGroup> ekleyin.
  3. <PREfastAdditionalOptions> öğesini ekleyin ve stacksize'i<bayt olarak>ayarlayın. Varsayılan değer stacksize1024 değeridir.
     <ItemDefinitionGroup>
       <ClCompile>


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

    </ClCompile>
  </ItemDefinitionGroup>
  1. Proje dosyasını kaydedin. Visual Studio'yu başlatın, güncelleştirilmiş sürücü projesini yükleyin ve kod analizini çalıştırın.

    Varsayılan 1 KB'a dönmek için proje dosyasında yaptığınız değişiklikleri geri alın veya yığın boyutu değerini stacksize1024olarak değiştirin.

Sürücü Uyarıları için Kod Analizi