Sözdizimi
llvm-cov command [args...]
Açıklama
llvm-cov aracı, profil verisi üretmek üzere donatılmış programlar için kod kapsamı bilgisini gösterir. gcov tarzı kod kapsamı ile veya clang'in kod donatma tabanlı profillemesi ile çalışmak için kullanılabilir.
Eğer program gcov temel adıyla çağrılırsa, llvm-cov gcov komutu çağrılmış gibi davranır. Aksi takdirde, bir komut belirtilmelidir.
Komutlar
• gcov
• show
• report
• export
Gcov Komutu
SÖZDİZİMİ llvm-cov gcov [seçenekler] SOURCEFILE
AÇIKLAMA llvm-cov gcov aracı, kod kapsamı veri dosyalarını okur ve belirtilen bir kaynak dosyası için kapsam bilgisini görüntüler. GCC'nin 4.2 sürümündeki gcov aracıyla uyumludur ve gcov'un bazı daha sonraki sürümleriyle de uyumlu olabilir.
llvm-cov gcov kullanmak için, öncelikle uygulamanızın çalışırken kapsam verisi toplayan donatılmış bir sürümünü derlemelisiniz. Donatmayı eklemek için uygulamayı -fprofile-arcs ve -ftest-coverage seçenekleriyle derleyin. (Alternatif olarak, bu diğer iki seçeneğin her ikisini de içeren --coverage seçeneğini kullanabilirsiniz.)
Donatılmış kodu derlediğiniz anda, her nesne dosyası için bir .gcno veri dosyası oluşturulacaktır. Bu .gcno dosyaları, kapsam verilerinin yarısını içerir. Verilerin diğer yarısı ise donatılmış programı çalıştırdığınızda oluşturulan .gcda dosyalarından gelir; her bir nesne dosyası için ayrı bir .gcda dosyası bulunur. Programı her çalıştırdığınızda, yürütme sayıları mevcut .gcda dosyalarında toplanır, bu nedenle içeriklerinin dahil edilmesini istemiyorsanız eski dosyaları sildiğinizden emin olun.
Varsayılan olarak, .gcda dosyaları nesne dosyalarıyla aynı dizine yazılır, ancak GCOV_PREFIX ve GCOV_PREFIX_STRIP ortam değişkenlerini ayarlayarak bunu geçersiz kılabilirsiniz. GCOV_PREFIX_STRIP değişkeni, nesne dosyası dizininin mutlak yolunun başlangıcından kaldırılacak dizin bileşenlerinin sayısını belirtir. Bu dizinler kaldırıldıktan sonra, GCOV_PREFIX değişkeninden gelen önek eklenir. Bu ortam değişkenleri, donatılmış programı orijinal nesne dosyası dizinlerine erişilemeyen bir makinede çalıştırmanıza olanak tanır; ancak daha sonra .gcda dosyalarını, llvm-cov gcov aracının onları bulmayı beklediği nesne dosyası dizinlerine geri kopyalamanız gerekecektir.
Kapsam veri dosyalarını oluşturduktan sonra, kapsam sonuçlarını incelemek istediğiniz her bir ana kaynak dosyası için llvm-cov gcov aracını çalıştırın. Bu işlem, daha önce derleyiciyi çalıştırdığınız dizinden yürütülmelidir. Belirtilen kaynak dosyasının sonuçları, sonuna bir .gcov uzantısı eklenerek adlandırılan bir dosyaya yazılır. Ana kaynak dosyası tarafından dahil edilen her dosya için de sonuna .gcov uzantısı eklenmiş ayrı bir çıktı dosyası oluşturulur.
Bir .gcov çıktı dosyasının temel içeriği, her satırın başına bir yürütme sayısı ve satır numarası eklenmiş kaynak dosyasının bir kopyasıdır. Eğer bir satır yürütülebilir herhangi bir kod içermiyorsa, yürütme sayısı - olarak gösterilir. Bir satır kod içeriyor ancak bu kod hiç yürütülmemişse, sayı ##### olarak görüntülenir.
SEÇENEKLER
-a, --all-blocks Tüm temel blokları görüntüler. Tek bir kaynak kodu satırı için birden fazla blok varsa, bu seçenek llvm-cov'un tüm satır için tek bir sayı göstermek yerine her bir blok için sayıyı göstermesini sağlar.
-b, --branch-probabilities Koşullu dal olasılıklarını ve dal bilgilerinin bir özetini görüntüler.
-c, --branch-counts Olasılıklar yerine dal sayılarını görüntüler (-b seçeneğini gerektirir).
-m, --demangled-names Fonksiyon adlarını özgün biçimlerine dönüştürür (demangle).
-f, --function-summaries Tüm kaynak dosyası için tek bir özet göstermek yerine, her bir fonksiyon için kapsam özeti gösterir.
--help Kullanılabilir seçenekleri görüntüler (daha fazlası için --help-hidden).
-l, --long-file-names Ana kaynak dosyadan dahil edilen dosyaların kapsam çıktısı için, çıktı dosyası adlarının önüne bir önek olarak ana dosya adını ve ardından ## karakterlerini ekler. Hem ana dosya hem de dahil edilen dosya için tam yolları kullanmak amacıyla bu seçenek --preserve-paths seçeneğiyle birleştirilebilir.
-n, --no-output Herhangi bir .gcov dosyası çıktısı üretmez. Özet bilgiler yine de görüntülenir.
-o <DİZİN|DOSYA>, --object-directory=<DİZİN>, --object-file=
-p, --preserve-paths Kapsam çıktı dosyalarını adlandırırken yol bileşenlerini korur. Kaynak dosya adına ek olarak, o dosyaya giden yoldaki dizinleri de dahil eder. Dizinler # karakterleriyle ayrılır, . dizinleri kaldırılır ve .. dizinleri ^ karakterleriyle değiştirilir. --long-file-names seçeneğiyle birlikte kullanıldığında bu kural, hem ana dosya adına hem de dahil edilen dosya adına uygulanır.
-r: Sadece göreceli (relative) yollara veya -s ile belirtilen öneke sahip mutlak yollara sahip dosyaları döker.
-s
-t, --stdout Standart çıktıya (stdout) yazdırır, .gcov dosyaları üretmez.
-u, --unconditional-branches --branch-probabilities seçeneğinin çıktısına koşulsuz dalları da dahil eder.
-version llvm-cov sürümünü görüntüler.
-x, --hash-filenames Kapsam çıktı dosyalarını adlandırırken dosya adının MD5 karmasını (hash) kullanır. Kaynak dosya adının sonuna ## eklenir ve ardından onun için hesaplanan MD5 karması gelir.
ÇIKIŞ DURUMU llvm-cov gcov, girdi dosyalarını okuyamazsa 1 değerini döndürür. Aksi takdirde, sıfır ile çıkar.
Show Komutu
SÖZDİZİMİ llvm-cov show [seçenekler] -instr-profile PROFILE [BIN] [-object BIN]... [-sources] [SOURCE]...
AÇIKLAMA llvm-cov show komutu, PROFILE profil verisini kullanarak BIN... ikili dosyalarının (binary) satır satır kapsamını gösterir. İsteğe bağlı olarak, yalnızca SOURCE... içinde listelenen dosyaların kapsamını gösterecek şekilde filtrelenebilir.
BIN; bir yürütülebilir dosya, nesne dosyası, dinamik kütüphane veya arşiv (ince (thin) veya başka şekilde) olabilir.
llvm-cov show komutunu kullanmak için, profil ve kapsam verisi üretmek amacıyla kod donatımıyla derlenmiş bir programa ihtiyacınız vardır. Böyle bir programı clang ile derlemek için -fprofile-instr-generate and -fcoverage-mapping bayraklarını kullanın. Eğer clang sürücüsüyle (driver) bağlama (link) yapıyorsanız, gerekli çalışma zamanı kütüphanelerinin bağlandığından emin olmak için bağlama aşamasına -fprofile-instr-generate parametresini geçirin.
Kapsam bilgisi derlenen yürütülebilir dosyanın veya kütüphanenin kendisinde saklanır ve llvm-cov show komutuna BIN argümanı olarak geçirmeniz gereken şey de budur. Profil verisi, bu donatılmış programın normal şekilde çalıştırılmasıyla oluşturulur. Program sonlandığında, genellikle default.profraw olarak adlandırılan ham bir profil dosyası yazar; bu dosya, llvm-profdata merge aracı kullanılarak PROFILE argümanı için uygun bir formata dönüştürülebilir.
SEÇENEKLER
-show-branches=<GÖRÜNÜM> Dal koşulları için kapsamı sayı veya yüzde cinsinden gösterir. Desteklenen görünümler: "count", "percent".
-show-mcdc Geçerli her boolean ifadesi için değiştirilmiş koşul/karar kapsamını (MC/DC) gösterir.
-show-line-counts Her satır için yürütme sayılarını gösterir. Başka bir -show seçeneği kullanılmadığı sürece varsayılan olarak true değerini alır.
-show-expansions Önişlemci makroları veya metinsel dahil etmeler gibi dahil etmeleri kaynak dosyasının gösteriminde satır içi (inline) olarak genişletir. Varsayılan olarak false değerini alır.
-show-instantiations C++'taki şablonlar (templates) gibi birden çok kez somutlaştırılan (instantiated) kaynak bölgeleri için, birleşik özetin yanı sıra her bir somutlaştırmayı ayrı ayrı gösterir. Varsayılan olarak true değerini alır.
-show-regions Bölgenin başladığı karaktere işaret eden bir düzeltme işareti (caret - ^) görüntüleyerek her bölge için yürütme sayılarını gösterir. Varsayılan olarak false değerini alır.
-show-line-counts-or-regions Satırda yalnızca tek bir bölge varsa her satır için yürütme sayılarını gösterir, ancak satırda birden fazla bölge varsa tekil bölgeleri gösterir. Varsayılan olarak false değerini alır.
-show-directory-coverage En az bir kaynak dosyası içeren her dizinde, toplamları gösteren üst düzey bir dizin ile bir indeks dosyası oluşturur. Varsayılan olarak false değerini alır.
-use-color Renkli çıktıyı etkinleştirir veya devre dışı bırakır. Varsayılan olarak bu durum otomatik olarak algılanır.
-arch=[ADLAR] Listedeki N. girdinin belirtilen N. ikili dosyaya karşılık geleceği şekilde bir mimari listesi belirtir. Kapsanan nesne bir evrensel ikili dosya (universal binary) ise, bu seçenek kullanılacak mimariyi belirtir. Evrensel ikili dosyaya dahil edilmeyen bir mimari belirtmek veya evrensel olmayan bir ikili dosyayla eşleşmeyen bir mimari kullanmak hataya neden olur.
-name=
-name-allowlist=
-name-regex=
-ignore-filename-regex=
-format=<BİÇİM> Belirtilen çıktı biçimini kullanır. Desteklenen biçimler: "text", "html".
-tab-size=
-output-dir=YOL Kapsam raporlarının yazılacağı dizini belirtir. Dizin mevcut değilse oluşturulur. Fonksiyon görünümü modunda kullanıldığında (yani belirli fonksiyonları seçmek için -name veya -name-regex kullanıldığında), rapor PATH/functions.EXTENSION konumuna yazılır. Dosya görünümü modunda kullanıldığında, her dosya için bir rapor PATH/REL_PATH_TO_FILE.EXTENSION konumuna yazılır.
-Xdemangler=<ARAÇ>|<ARAÇ-SEÇENEĞİ> Bir sembol anlamlandırıcı (demangler) belirtir. Bu seçenek, raporları daha insan tarafından okunabilir hale getirmek için kullanılabilir. Anlamlandırıcıya argümanlar sağlamak için bu seçenek birden fazla kez belirtilebilir (örneğin
-Xdemangler c++filt -Xdemangler -n C++ için).: Anlamlandırıcının stdin'den yeni satırla ayrılmış bir sembol listesi okuması ve stdout'a aynı uzunlukta yeni satırla ayrılmış bir liste yazması beklenir.
-num-threads=N, -j=N Dosya raporlarını yazmak için N adet iş parçacığı (thread) kullanır (yalnızca -output-dir belirtildiğinde geçerlidir). N=0 olduğunda, llvm-cov kullanılacak uygun iş parçacığı sayısını otomatik olarak algılar. Varsayılan değer budur.
-compilation-dir=
-line-coverage-gt=
-line-coverage-lt=
-region-coverage-gt=
-region-coverage-lt=
-path-equivalence=
-coverage-watermark=<yüksek>,<düşük> html biçimindeki çıktıda kapsam için yüksek ve düşük eşik değerlerini (watermark) ayarlar. Bu durum, kapsamın yüksek ve düşük eşik değerlerini istediğiniz gibi ayarlamanıza olanak tanır; kapsam >= yüksek olduğunda yeşil, kapsam < düşük olduğunda kırmızı ve aksi takdirde sarı olur. Hem yüksek hem de düşük değerler 0-100 arasında olmalı ve yüksek > düşük olmalıdır.
-debuginfod Profilde bulunan ancak komut satırında verilen herhangi bir nesnede bulunmayan ikili dosya kimlikleri (binary ID) için kapsam eşlemesini aramak üzere debuginfod kullanır. debuginfod derlenmişse ve DEBUGINFOD_URLS ortam değişkeni aracılığıyla yapılandırılmışsa varsayılan olarak true değerini alır.
-debug-file-directory=
-check-binary-ids Profilde bulunan bir ikili dosya kimliği için ne komut satırında ne de ikili dosya kimliği araması yoluyla bir nesne dosyası bulunamazsa başarısız olur.
-empty-profile Yürütme sayıları tamamen sıfır olan ikili dosyaların temel kapsamını görüntüler. -instr-profile ile karşılıklı olarak özeldir (bir arada kullanılamaz).
Report Komutu
SÖZDİZİMİ llvm-cov report [seçenekler] -instr-profile PROFILE [BIN] [-object BIN]... [-sources] [SOURCE]...
AÇIKLAMA llvm-cov report komutu, PROFILE profil verisini kullanarak BIN... ikili dosyalarının kapsamının bir özetini görüntüler. İsteğe bağlı olarak, yalnızca SOURCE... içinde listelenen dosyaların kapsamını gösterecek şekilde filtrelenebilir.
BIN; bir yürütülebilir dosya, nesne dosyası, dinamik kütüphane veya arşiv (ince (thin) veya başka şekilde) olabilir.
Hiçbir kaynak dosyası sağlanmazsa, kapsam verilerindeki her dosya için bir özet satırı yazdırılır. Herhangi bir dosya sağlanırsa ve -show-functions seçeneği etkinse, listelenen dosyalardaki her bir fonksiyon için özetler gösterilebilir.
Kapsam belirleme amacıyla programları derleme ve profil verisi oluşturma hakkında bilgi için bkz. SHOW KOMUTU.
SEÇENEKLER
-use-color[=DEĞER] Renkli çıktıyı etkinleştirir veya devre dışı bırakır. Varsayılan olarak bu durum otomatik olarak algılanır.
-arch=
-show-region-summary Tüm bölgeler için istatistikleri gösterir. Varsayılan olarak true değerini alır.
-show-branch-summary Tüm dal koşulları için istatistikleri gösterir. Varsayılan olarak true değerini alır.
-show-mcdc-summary MC/DC istatistiklerini gösterir. Varsayılan olarak false değerini alır.
-show-functions Her bir fonksiyon için kapsam özetlerini gösterir. Varsayılan olarak false değerini alır.
-show-instantiation-summary Tüm fonksiyon somutlaştırmaları için istatistikleri gösterir. Varsayılan olarak false değerini alır.
-ignore-filename-regex=
-compilation-dir=
-debuginfod debuginfod kullanarak nesnelerden kapsam eşlemesini aramaya çalışır. debuginfod derlenmişse ve DEBUGINFOD_URLS ortam değişkeni aracılığıyla yapılandırılmışsa, bu işlem profilde bulunan ancak komut satırında sağlanmayan ikili dosya kimlikleri için varsayılan olarak denenir.
-debug-file-directory=
-check-binary-ids Profilde bulunan bir ikili dosya kimliği için ne komut satırında ne de ikili dosya kimliği araması yoluyla bir nesne dosyası bulunamazsa başarısız olur.
-empty-profile Yürütme sayıları tamamen sıfır olan ikili dosyaların temel kapsamını görüntüler. -instr-profile ile karşılıklı olarak özeldir (bir arada kullanılamaz).
Export Komutu
SÖZDİZİMİ llvm-cov export [seçenekler] -instr-profile PROFILE [BIN] [-object BIN]... [-sources] [SOURCE]...
AÇIKLAMA llvm-cov export komutu, PROFILE profil verisini kullanarak BIN... ikili dosyalarının kapsam verilerini JSON veya lcov izleme dosyası (trace file) biçiminde dışa aktarır.
JSON dışa aktarılırken, kapsam verilerinin bölgeleri, fonksiyonları, dalları, genişletmeleri ve özetleri dışa aktarılacaktır. Bir lcov izleme dosyası dışa aktarılırken ise satır tabanlı kapsam, dal kapsamı ve özetler dışa aktarılacaktır.
Dışa aktarılan veriler, yalnızca SOURCE... içinde listelenen dosyaların kapsamını dışa aktaracak şekilde isteğe bağlı olarak filtrelenebilir.
Kapsam belirleme amacıyla programları derleme ve profil verisi oluşturma hakkında bilgi için bkz. SHOW KOMUTU.
SEÇENEKLER
-arch=
-format=<BİÇİM> Belirtilen çıktı biçimini kullanır. Desteklenen biçimler: "text" (JSON), "lcov".
-summary-only Kapsam verilerindeki her dosya için yalnızca özet bilgilerini dışa aktarır. Bu mod, tekil fonksiyonlar veya bölgeler gibi daha küçük birimler için kapsam bilgilerini dışa aktarmaz. Sonuç, llvm-cov report komutu tarafından üretilen bilgilerin aynısını içerecektir, ancak metin yerine JSON veya lcov biçiminde sunulacaktır.
-ignore-filename-regex=
-skip-expansions Makro genişletme kapsam verilerinin dışa aktarılmasını atlar.
-skip-functions Fonksiyon başına kapsam verilerinin dışa aktarılmasını atlar.
-num-threads=N, -j=N Kapsam verilerini dışa aktarmak için N adet iş parçacığı kullanır. N=0 olduğunda, llvm-cov kullanılacak uygun iş parçacığı sayısını otomatik olarak algılar. Varsayılan değer budur.
-compilation-dir=
-debuginfod debuginfod kullanarak nesnelerden kapsam eşlemesini aramaya çalışır. debuginfod derlenmişse ve DEBUGINFOD_URLS ortam değişkeni aracılığıyla yapılandırılmışsa, bu işlem profilde bulunan ancak komut satırında sağlanmayan ikili dosya kimlikleri için varsayılan olarak denenir.
-debug-file-directory=
-check-binary-ids Profilde bulunan bir ikili dosya kimliği için ne komut satırında ne de ikili dosya kimliği araması yoluyla bir nesne dosyası bulunamazsa başarısız olur.
-empty-profile Yürütme sayıları tamamen sıfır olan ikili dosyaların temel kapsamını dışa aktarır. -instr-profile ile karşılıklı olarak özeldir (bir arada kullanılamaz).
Convert-For-Testing Komutu
UYARI: Bu komut yalnızca llvm-cov üzerinde çalışan LLVM geliştiricileri içindir.
SÖZDİZİMİ llvm-cov convert-for-testing BIN -o OUT
AÇIKLAMA llvm-cov convert-for-testing komutu, llvm-cov'un kendisini test etme amacına hizmet eder. BIN ikili dosyasından tüm kod kapsamı verilerini OUT dosyasına çıkarabilir, böylece test dosyalarının boyutunu azaltır. Çıktı dosyası genellikle .covmapping uzantısını taşır.
.covmapping dosyaları, tıpkı sıradan ikili dosyalar gibi llvm-cov tarafından geri okunabilir.
Yazar
LLVM Team (https://llvm.org/) tarafından sürdürülmektedir.
Telif Hakkı
2003-2026, LLVM Project
11 2026-02-13 LLVM-COV(1)