.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" .TH GCOV-TOOL 1 "2025-08-08" "gcc-15.2.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh.SH "نام (NAME)" gcov\-tool \- ابزار آفلاین پردازش پروفایل gcda .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" gcov-tool [\fB\-v\fR|\fB\-\-version\fR] [\fB\-h\fR|\fB\-\-help\fR] .PP gcov-tool merge [merge\-options] \fIdirectory1\fR \fIdirectory2\fR [\fB\-o\fR|\fB\-\-output\fR \fIdirectory\fR] [\fB\-v\fR|\fB\-\-verbose\fR] [\fB\-w\fR|\fB\-\-weight\fR \fIw1,w2\fR] .PP gcov-tool merge-stream [merge\-stream\-options] [\fIfile\fR] [\fB\-v\fR|\fB\-\-verbose\fR] [\fB\-w\fR|\fB\-\-weight\fR \fIw1,w2\fR] .PP gcov-tool rewrite [rewrite\-options] \fIdirectory\fR [\fB\-n\fR|\fB\-\-normalize\fR \fIlong_long_value\fR] [\fB\-o\fR|\fB\-\-output\fR \fIdirectory\fR] [\fB\-s\fR|\fB\-\-scale\fR \fIfloat_or_simple\-frac_value\fR] [\fB\-v\fR|\fB\-\-verbose\fR] .PP gcov-tool overlap [overlap\-options] \fIdirectory1\fR \fIdirectory2\fR [\fB\-f\fR|\fB\-\-function\fR] [\fB\-F\fR|\fB\-\-fullname\fR] [\fB\-h\fR|\fB\-\-hotonly\fR] [\fB\-o\fR|\fB\-\-object\fR] [\fB\-t\fR|\fB\-\-hot_threshold\fR] \fIfloat\fR [\fB\-v\fR|\fB\-\-verbose\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" \&\fBgcov-tool\fR ابزاری آفلاین برای پردازش فایل‌های پروفایل gcda در gcc است. .PP در حال حاضر gcov-tool از قابلیت‌های زیر پشتیبانی می‌کند: .IP "*" 4 ادغام دو مجموعه از پروفایل‌ها با ضریب وزن. .IP "*" 4 خواندن جریانی از پروفایل‌ها به همراه نام فایل‌های مربوطه و ادغام آن با مجموعه‌ای از پروفایل‌ها با ضریب وزن. .IP "*" 4 خواندن یک مجموعه از پروفایل و بازنویسی محتویات آن. امکان مقیاس‌بندی یا نرمال‌سازی مقادیر شمارنده وجود دارد. .PP نمونه‌هایی از کاربردهای این ابزار عبارتند از: .IP "*" 4 جمع‌آوری پروفایل‌ها برای مجموعه‌های مختلفی از ورودی‌ها و استفاده از این ابزار جهت ادغام آن‌ها. می‌توان ضریب وزنی برای اعمال اهمیت نسبی هر ورودی تعیین کرد. .IP "*" 4 جمع‌آوری پروفایل‌ها از سیستم‌های مقصد فاقد سیستم‌فایل (محیط‌های مستقل یا freestanding). ادغام پروفایل‌های جمع‌آوری‌شده با پروفایل‌های متناظر موجود در سیستم میزبان. می‌توان ضریب وزنی برای اعمال اهمیت نسبی هر ورودی تعیین کرد. .IP "*" 4 بازنویسی پروفایل پس از حذف زیرمجموعه‌ای از فایل‌های gcda، ضمن حفظ سازگاری خلاصه (summary) و هیستوگرام (histogram). .IP "*" 4 استفاده جهت اشکال‌زدایی کدهای libgcov، زیرا این ابزار بخش عمده‌ای از کدها را با کتابخانه زمان اجرا به اشتراک می‌گذارد. .PP توجه داشته باشید که در عملیات ادغام، این پروفایلِ تولیدشده به‌صورت آفلاین ممکن است حاوی مقادیر کمی متفاوت نسبت به پروفایل ادغام‌شده به‌صورت آنلاین باشد. در اینجا فهرستی از تفاوت‌های معمول آورده شده است: .IP "*" 4 تفاوت هیستوگرام: این ابزار آفلاین هیستوگرام را پس از ادغام شمارنده‌ها مجدداً محاسبه می‌کند. بنابراین هیستوگرام حاصل دقیق است. ادغام آنلاین چنین قابلیتی ندارد \*(-- هیستوگرام از ادغام دو هیستوگرام حاصل می‌شود و نتیجه تقریبی است. .IP "*" 4 تفاوت جمع‌وارسی (checksum) خلاصه: جمع‌وارسی خلاصه از عملیات \s-1CRC32\s0 استفاده می‌کند. این مقدار به ترتیب پیوند لیست اشیاء gcov-info بستگی دارد. این ترتیب در gcov-tool با ادغام آنلاین متفاوت است. انتظار می‌رود که جمع‌وارسی‌های خلاصه متفاوتی حاصل شود. این موضوع اهمیتی ندارد زیرا کامپایلر در هیچ کجایی از این جمع‌وارسی استفاده نمی‌کند. .IP "*" 4 تفاوت در مقادیر شمارنده پروفایل مقداری (value profile): برخی از مقادیر شمارنده برای پروفایل مقداری، به زمان اجرا وابسته هستند، مانند آدرس‌های حافظه heap. مشاهده تفاوت در این نوع شمارنده‌ها طبیعی است. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP "\fB\-h\fR" 4 .IX Item "-h" .PD 0 .IP "\fB\-\-help\fR" 4 .IX Item "--help" .PD نمایش راهنمای استفاده از \fBgcov-tool\fR (در خروجی استاندارد) و خروج بدون انجام هیچ پردازش دیگری. .IP "\fB\-v\fR" 4 .IX Item "-v" .PD 0 .IP "\fB\-\-version\fR" 4 .IX Item "--version" .PD نمایش شماره نسخه \fBgcov-tool\fR (در خروجی استاندارد) و خروج بدون انجام هیچ پردازش دیگری. .IP "\fBmerge\fR" 4 .IX Item "merge" ادغام دو دایرکتوری پروفایل. .RS 4 .IP "\fB\-o\fR \fIdirectory\fR" 4 .IX Item "-o directory" .PD 0 .IP "\fB\-\-output\fR \fIdirectory\fR" 4 .IX Item "--output directory" .PD تعیین دایرکتوری خروجی پروفایل. نام پیش‌فرض دایرکتوری خروجی \&\fImerged_profile\fR است. .IP "\fB\-v\fR" 4 .IX Item "-v" .PD 0 .IP "\fB\-\-verbose\fR" 4 .IX Item "--verbose" .PD فعال کردن حالت پرحرف با جزئیات کامل. .IP "\fB\-w\fR \fIw1\fR\fB,\fR\fIw2\fR" 4 .IX Item "-w w1,w2" .PD 0 .IP "\fB\-\-weight\fR \fIw1\fR\fB,\fR\fIw2\fR" 4 .IX Item "--weight w1,w2" .PD تعیین وزن‌های ادغام به ترتیب برای \fIdirectory1\fR و \fIdirectory2\fR. وزن پیش‌فرض برای هر دو 1 است. .RE .RS 4 .RE .IP "\fBmerge-stream\fR" 4 .IX Item "merge-stream" جمع‌آوری پروفایل‌ها به همراه نام فایل‌های مربوطه از جریان داده \fIgcfn\fR و \fIgcda\fR. خواندن جریان از فایل مشخص‌شده توسط \fIfile\fR یا از \fIstdin\fR. ادغام پروفایل‌ها با پروفایل‌های متناظر در سیستم‌فایل میزبان. اعمال وزن‌های اختیاری هنگام ادغام پروفایل‌ها. .Sp برای تولید جریان داده \fIgcfn\fR و \fIgcda\fR روی سیستم مقصد، لطفاً به توابع \f(CW\*(C`_\|_gcov_filename_to_gcfn()\*(C'\fR و \&\f(CW\*(C`_\|_gcov_info_to_gcda()\*(C'\fR که در \&\f(CW\*(C`#include \*(C'\fR اعلان شده‌اند توجه کنید. .RS 4 .IP "\fB\-v\fR" 4 .IX Item "-v" .PD 0 .IP "\fB\-\-verbose\fR" 4 .IX Item "--verbose" .PD فعال کردن حالت پرحرف با جزئیات کامل. .IP "\fB\-w\fR \fIw1\fR\fB,\fR\fIw2\fR" 4 .IX Item "-w w1,w2" .PD 0 .IP "\fB\-\-weight\fR \fIw1\fR\fB,\fR\fIw2\fR" 4 .IX Item "--weight w1,w2" .PD تعیین وزن‌های ادغام برای پروفایل‌های دریافتی از جریان داده \fIgcfn\fR و \fIgcda\fR و پروفایل‌های متناظر در سیستم‌فایل میزبان. وزن پیش‌فرض برای هر دو 1 است. .RE .RS 4 .RE .IP "\fBrewrite\fR" 4 .IX Item "rewrite" خواندن دایرکتوری پروفایل مشخص‌شده و بازنویسی آن در یک دایرکتوری جدید. .RS 4 .IP "\fB\-n\fR \fIlong_long_value\fR" 4 .IX Item "-n long_long_value" .PD 0 .IP "\fB\-\-normalize \fR" 4 .IX Item "--normalize " .PD نرمال‌سازی پروفایل. مقدار مشخص‌شده بیشینه مقدار شمارنده در پروفایل جدید خواهد بود. .IP "\fB\-o\fR \fIdirectory\fR" 4 .IX Item "-o directory" .PD 0 .IP "\fB\-\-output\fR \fIdirectory\fR" 4 .IX Item "--output directory" .PD تعیین دایرکتوری خروجی پروفایل. نام خروجی پیش‌فرض \fIrewrite_profile\fR است. .IP "\fB\-s\fR \fIfloat_or_simple\-frac_value\fR" 4 .IX Item "-s float_or_simple-frac_value" .PD 0 .IP "\fB\-\-scale\fR \fIfloat_or_simple\-frac_value\fR" 4 .IX Item "--scale float_or_simple-frac_value" .PD مقیاس‌بندی شمارنده‌های پروفایل. مقدار مشخص‌شده می‌تواند به صورت یک مقدار ممیز شناور، یا کسری ساده مانند 1، 2، 2/3 و 5/3 باشد..IP "\fB\-v\fR" 4 .IX Item "-v" .PD 0 .IP "\fB\-\-verbose\fR" 4 .IX Item "--verbose" .PD تنظیم حالت پرگویی. .RE .RS 4 .RE .IP "\fBoverlap\fR" 4 .IX Item "overlap" محاسبه امتیاز هم‌پوشانی بین دو دایرکتوری پروفایل مشخص‌شده. امتیاز هم‌پوشانی بر اساس پروفایل‌های کمان (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 به ترتیب مجموع مقادیر شمارنده در پروفایل ۱ و پروفایل ۲ هستند. .RS 4 .IP "\fB\-f\fR" 4 .IX Item "-f" .PD 0 .IP "\fB\-\-function\fR" 4 .IX Item "--function" .PD چاپ امتیاز هم‌پوشانی در سطح تابع. .IP "\fB\-F\fR" 4 .IX Item "-F" .PD 0 .IP "\fB\-\-fullname\fR" 4 .IX Item "--fullname" .PD چاپ نام کامل فایل gcda. .IP "\fB\-h\fR" 4 .IX Item "-h" .PD 0 .IP "\fB\-\-hotonly\fR" 4 .IX Item "--hotonly" .PD تنها چاپ اطلاعات برای اشیاء/توابع داغ (hot). .IP "\fB\-o\fR" 4 .IX Item "-o" .PD 0 .IP "\fB\-\-object\fR" 4 .IX Item "--object" .PD چاپ امتیاز هم‌پوشانی در سطح شیء. .IP "\fB\-t\fR \fIfloat\fR" 4 .IX Item "-t float" .PD 0 .IP "\fB\-\-hot_threshold \fR" 4 .IX Item "--hot_threshold " .PD تنظیم مقدار آستانه برای مقدار شمارنده داغ (hot). .IP "\fB\-v\fR" 4 .IX Item "-v" .PD 0 .IP "\fB\-\-verbose\fR" 4 .IX Item "--verbose" .PD تنظیم حالت پرگویی. .RE .RS 4 .RE .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fIgpl\fR\|(7)، \fIgfdl\fR\|(7)، \fIfsf\-funding\fR\|(7)، \fIgcc\fR\|(1)، \fIgcov\fR\|(1) و مدخل Info برای \&\fIgcc\fR. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright (c) 2014\-2025 Free Software Foundation, Inc. .PP اجازه نسخه‌برداری، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (\s-1GNU\s0 Free Documentation License)، نسخه ۱.۳ یا هر نسخهٔ متأخرتر منتشرشده توسط بنیاد نرم‌افزارهای آزاد اعطا می‌شود؛ با بخش‌های تغییرناپذیر شامل \*(L"\s-1GNU\s0 General Public License\*(R" و \*(L"Funding Free Software\*(R"، با متون روی جلد (الف) (در زیر آمده است)، و با متون پشت جلد (ب) (در زیر آمده است). یک نسخه از مجوز در صفحهٔ راهنمای \fIgfdl\fR\|(7) گنجانده شده است. .PP (الف) متن روی جلد \s-1FSF\s0 عبارت است از: .PP .Vb 1 \& A GNU Manual .Ve .PP (ب) متن پشت جلد \s-1FSF\s0 عبارت است از: .PP .Vb 3 \& 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. .Ve