LLVM2LCOV(1) LCOV LLVM2LCOV(1) نام (NAME) llvm2lcov - مستندات llvm2lcov بخش راهنما 1 گروه راهنما ابزارهای LCOV نام (NAME) llvm2lcov تبدیل داده‌های پوشش کد LLVM از profdata در llvm-cov به قالب LCOV خلاصه دستور (SYNOPSIS) llvm2lcov [--output filename] [--testname name] [options] json_file [json_file ...] توضیحات (DESCRIPTION) دستور llvm2lcov داده‌های پوشش کد C/C++ در قالب JSON (تولیدشده توسط llvm-cov export -format=text ...) را پیمایش کرده و آن‌ها را به قالب .info در LCOV تبدیل می‌کند. توجه داشته باشید که LLVM از دو مسیر برای جمع‌آوری داده‌های پوشش کد پشتیبانی می‌کند: مسیری که در این صفحه شرح داده شده است - بر اساس داده‌های پروفایل - و یک مسیر gcov - مشابه آنچه توسط gcc پشتیبانی می‌شود. برای جزئیات بیشتر درباره پشتیبانی از gcov در LLVM، مستندات LLVM را ببینید. پوشش MC/DC (MC/DC COVERAGE) برای تولید داده‌های MC/DC: • از LLVM نسخه ۱۸ یا جدیدتر استفاده کنید (نسخه ۲۱ به بالا برای داده‌های تمیزتر MC/DC پیشنهاد می‌شود) • ابزاردقیق‌سازی MC/DC را در مراحل کامپایل/پیوند با -fcoverage-mcdc فعال کنید • پرچم --mcdc-coverage را به llvm2lcov ارسال کنید توجه داشته باشید که LLVM هنگام استفاده از مسیر جمع‌آوری داده‌های gcov از معیارهای MC/DC پشتیبانی نمی‌کند. گزینه‌ها (OPTIONS) افزون بر گزینه‌های عمومی که توسط ابزارهای دیگر در مجموعه LCOV پشتیبانی می‌شوند (مانند --comment، --version-script، --ignore-error، --substitute، --exclude و غیره)، این ابزار گزینه‌های زیر را فراهم می‌کند: --output filename, -o filename داده‌های LCOV در فایل مشخص‌شده نوشته خواهند شد. اگر از این گزینه استفاده نشود، داده‌ها در فایل llvm2lcov.info در دایرکتوری جاری نوشته می‌شوند. --testname name, -t name اطلاعات پوشش کد با نام موردآزمون ارائه‌شده مرتبط خواهند شد. ارائه نام الزامی نیست. --branch-coverage گنجاندن داده‌های پوشش شاخه در خروجی. --mcdc-coverage گنجاندن داده‌های MC/DC در خروجی. نیازمند LLVM نسخه ۱۸ یا بالاتر به همراه فعال بودن ابزاردقیق‌سازی MC/DC در حین کامپایل است. برای جزئیات سایر گزینه‌ها و تنظیمات پیکربندی، lcov(1) و lcovrc(5) را ببینید. مثال‌ها (EXAMPLES) گردش کار پایه: # کامپایل به همراه ابزاردقیق‌سازی پوشش کد (شامل MC/DC) $ clang++ -o myExe -fprofile-inst-generate -fcoverage-mapping \ -fcoverage-mcdc myCode.cpp # اجرای موردآزمون‌ها $ ./myExe ... # تبدیل داده‌های پروفایل $ llvm-profdata merge -o myExe.profdata --sparse *.profraw # برون‌بری داده‌های پوشش در قالب JSON $ llvm-cov export -format=text -instr-profile=myExe.profdata \ ./myExe > myExe.json # تبدیل به قالب LCOV $ llvm2lcov --output myExe.info --test-name myTestcase \ --mcdc-coverage --branch-coverage myExe.json ... # تولید گزارش پوشش کد در قالب HTML $ genhtml -o html_report myExe.info ... (... نشان‌دهنده سایر گزینه‌های ابزار است که ممکن است استفاده کنید - برای مثال، برای پالایش و مستثنی‌سازی.) اجرای همین مثال از طریق gcov به این صورت است: # کامپایل با ابزاردقیق‌سازی gcov $ clang++ -o myExe --coverage myCode.cpp # اجرای موردآزمون‌ها $ ./myExe ... # تبدیل به قالب LCOV # توجه داشته باشید که گزینه '--gcov-tool' دو بار ذکر شده است: یک بار برای تعیین # ابزار و یک بار برای ارسال گزینه ابزار. برای اطلاعات بیشتر # به صفحه راهنمای lcov مراجعه کنید. $ lcov --capture -d . --branch-coverage -o myExe.info --gcov-tool llvm-cov --gcov-tool gcov ... # تولید گزارش پوشش کد در قالب HTML $ genhtml -o html_report myExe.info ... نویسندگان (AUTHORS) Henry Cox <> همچنین ببینید (SEE ALSO) lcov(1) , genhtml(1) , geninfo(1) , lcovrc(5) , • مستندات LLVM: • مستندات llvm-cov: کپی‌رایت و تکثیر (COPYRIGHT) 2024-2026, LCOV Project 2.5 2026-07-07 LLVM2LCOV(1)