GCOV-TOOL(1) GNU GCOV-TOOL(1) gcov-tool - ابزار آفلاین پردازش پروفایل‌های gcda خلاصه دستور (SYNOPSIS) gcov-tool [-v|--version] [-h|--help] gcov-tool merge [merge-options] directory1 directory2 [-o|--output directory] [-v|--verbose] [-w|--weight w1,w2] gcov-tool merge-stream [merge-stream-options] [file] [-v|--verbose] [-w|--weight w1,w2] gcov-tool rewrite [rewrite-options] directory [-n|--normalize long_long_value] [-o|--output directory] [-s|--scale float_or_simple-frac_value] [-v|--verbose] gcov-tool overlap [overlap-options] directory1 directory2 [-f|--function] [-F|--fullname] [-h|--hotonly] [-o|--object] [-t|--hot_threshold] float [-v|--verbose] توضیحات (DESCRIPTION) gcov-tool ابزاری آفلاین برای پردازش فایل‌های پروفایل gcda متعلق به gcc است. در حال حاضر gcov-tool از قابلیت‌های زیر پشتیبانی می‌کند: * ادغام دو مجموعه‌پروفایل با اعمال ضریب وزنی. * خواندن جریانی از پروفایل‌ها به همراه نام فایل‌های مربوطه و ادغام آن با مجموعه‌ای از پروفایل‌ها با اعمال وزن‌ها. * خواندن یک مجموعه پروفایل و بازنویسی محتوای آن. می‌توان مقادیر شمارنده‌ها را مقیاس‌بندی (scale) یا نرمال‌سازی (normalize) کرد. نمونه‌هایی از کاربردهای این ابزار عبارتند از: * جمع‌آوری پروفایل‌ها برای مجموعه‌های متفاوتی از ورودی‌ها، و استفاده از این ابزار برای ادغام آن‌ها. می‌توان با تعیین وزن، اهمیت نسبی هر ورودی را لحاظ کرد. * جمع‌آوری پروفایل‌ها از سیستم‌های مقصد فاقد فایل‌سیستم (محیط‌های خودکفا یا freestanding). ادغام پروفایل‌های جمع‌آوری‌شده با پروفایل‌های مرتبط موجود روی سیستم میزبان. می‌توان وزن‌ها را برای اعمال اهمیت نسبی هر ورودی مشخص کرد. * بازنویسی پروفایل پس از حذف زیرمجموعه‌ای از فایل‌های gcda، در حین حفظ یکپارچگی خلاصه (summary) و هیستوگرام (histogram). * همچنین می‌تواند برای اشکال‌زدایی کدهای libgcov به کار رود، زیرا این ابزار بخش عمده‌ای از کدها را با کتابخانه زمان‌اجرا (runtime) به اشتراک دارد. توجه داشته باشید که برای عملیات ادغام، این پروفایل تولیدشده به‌صورت آفلاین ممکن است حاوی مقادیر کمی متفاوت از پروفایل ادغام‌شده به‌صورت آنلاین باشد. در اینجا فهرستی از تفاوت‌های معمول آورده شده است: * تفاوت هیستوگرام: این ابزار آفلاین، پس از ادغام شمارنده‌ها، هیستوگرام را دوباره محاسبه می‌کند. بنابراین، هیستوگرام حاصل دقیق است. ادغام آنلاین چنین قابلیتی ندارد -- هیستوگرام از ادغام دو هیستوگرام به دست می‌آید و نتیجه یک مقدار تقریبی است. * تفاوت چکسام خلاصه (summary checksum): چکسام خلاصه از عملیات CRC32 استفاده می‌کند. مقدار آن به ترتیب پیوند لیست اشیاء gcov-info بستگی دارد. این ترتیب در gcov-tool نسبت به ادغام آنلاین متفاوت است. وجود تفاوت در چکسام خلاصه طبیعی و مورد انتظار است. این موضوع چندان اهمیتی ندارد زیرا کامپایلر در هیچ کجایی از این چکسام استفاده نمی‌کند. * تفاوت در مقادیر شمارنده‌های پروفایل مقادیر (value profile): برخی مقادیر شمارنده برای پروفایل مقادیر به زمان اجرا وابسته‌اند، مانند آدرس‌های هیپ (heap). مشاهده مقداری تفاوت در این نوع شمارنده‌ها کاملاً طبیعی است. گزینه‌ها (OPTIONS) -h --help نمایش راهنما درباره نحوه استفاده از gcov-tool (در خروجی استاندارد) و خروج بدون انجام پردازش دیگر. -v --version نمایش شماره نگارش gcov-tool (در خروجی استاندارد) و خروج بدون انجام پردازش دیگر. merge ادغام دو دایرکتوری پروفایل. -o directory --output directory تنظیم دایرکتوری خروجی پروفایل. نام پیش‌فرض دایرکتوری خروجی merged_profile است. -v --verbose فعال کردن حالت پرگو (verbose). -w w1,w2 --weight w1,w2 تنظیم وزن‌های ادغام به ترتیب برای directory1 و directory2. وزن پیش‌فرض برای هر دو 1 است. merge-stream جمع‌آوری پروفایل‌ها همراه با نام فایل‌های متناظر از یک جریان داده gcfn و gcda. خواندن جریان از فایل مشخص‌شده توسط file یا از stdin. ادغام پروفایل‌ها با پروفایل‌های متناظر در فایل‌سیستم میزبان. اعمال وزن‌های اختیاری هنگام ادغام پروفایل‌ها. برای تولید یک جریان داده gcfn و gcda روی سیستم مقصد، لطفاً به توابع "__gcov_filename_to_gcfn()" و "__gcov_info_to_gcda()" که در "#include " اعلان شده‌اند، مراجعه کنید. -v --verbose فعال کردن حالت پرگو (verbose). -w w1,w2 --weight w1,w2 تنظیم وزن‌های ادغام به ترتیب برای پروفایل‌های حاصل از جریان داده gcfn و gcda و پروفایل‌های متناظر در فایل‌سیستم میزبان. وزن پیش‌فرض برای هر دو 1 است. rewrite خواندن دایرکتوری پروفایل مشخص‌شده و بازنویسی آن در یک دایرکتوری جدید. -n long_long_value --normalize نرمال‌سازی پروفایل. مقدار مشخص‌شده، بیشینه مقدار شمارنده در پروفایل جدید خواهد بود. -o directory --output directory تنظیم دایرکتوری خروجی پروفایل. نام خروجی پیش‌فرض rewrite_profile است. -s float_or_simple-frac_value --scale float_or_simple-frac_value مقیاس‌بندی شمارنده‌های پروفایل. مقدار مشخص‌شده می‌تواند به صورت یک عدد ممیز شناور، یا یک کسر ساده مانند 1، 2، 2/3 و 5/3 باشد. -v --verbose فعال کردن حالت پرگو (verbose). overlap محاسبه امتیاز هم‌پوشانی (overlap score) بین دو دایرکتوری پروفایل مشخص‌شده. امتیاز هم‌پوشانی بر اساس پروفایل‌های یال (arc profiles) محاسبه می‌شود. این امتیاز به صورت مجموع min (p1_counter[i] / p1_sum_all, p2_counter[i] / p2_sum_all) برای تمام شمارنده‌های یال i تعریف می‌شود، که در آن p1_counter[i] و p2_counter[i] دو شمارنده منطبق و p1_sum_all و p2_sum_all به ترتیب مجموع مقادیر شمارنده‌ها در پروفایل ۱ و پروفایل ۲ هستند. --function چاپ امتیاز هم‌پوشانی در سطح تابع. -F --fullname چاپ نام کامل فایل gcda. -h --hotonly تنها چاپ اطلاعات برای اشیاء/توابع پرکاربرد (hot). -o --object چاپ امتیاز هم‌پوشانی در سطح شیء (object). -t float --hot_threshold تنظیم مقدار آستانه برای شمارندهٔ پرکاربرد (hot). -v --verbose فعال‌سازی حالت پرگویی (verbose). همچنین ببینید (SEE ALSO) gpl(7)، gfdl(7)، fsf-funding(7)، gcc(1)، gcov(1) و مدخل Info برای gcc. کپی‌رایت و تکثیر (COPYRIGHT) حق نشر © 2014-2025 Free Software Foundation, Inc. اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد GNU»، نسخه ۱.۳ یا هر نسخه جدیدتر منتشرشده توسط بنیاد نرم‌افزارهای آزاد اعطا می‌شود؛ با بخش‌های تغییرناپذیرِ "GNU General Public License" و "Funding Free Software"، متن‌های روی جلد (الف) (پایین را ببینید)، و متن‌های پشت جلد (ب) (پایین را ببینید). نسخه‌ای از مجوز در صفحه راهنمای gfdl(7) گنجانده شده است. (الف) متن روی جلد FSF عبارت است از: A GNU Manual (ب) متن پشت جلد FSF عبارت است از: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. gcc-15.2.0 2025-08-08 GCOV-TOOL(1)