.\" 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 خواندن یک مجموعه پروفایل و بازنویسی محتوای آن. می‌توان مقادیر شمارنده‌ها را مقیاس‌بندی (scale) یا نرمال‌سازی (normalize) کرد. .PP نمونه‌هایی از کاربردهای این ابزار عبارتند از: .IP "*" 4 جمع‌آوری پروفایل‌ها برای مجموعه‌های مختلف ورودی و استفاده از این ابزار برای ادغام آن‌ها. می‌توان با تعیین وزن، اهمیت نسبی هر ورودی را در نظر گرفت. .IP "*" 4 جمع‌آوری پروفایل‌ها از سامانه‌های مقصد فاقد سامانه پرونده (محیط‌های freestanding). ادغام پروفایل‌های جمع‌آوری‌شده با پروفایل‌های متناظر موجود در سامانه میزبان. می‌توان وزن را برای اعمال اهمیت نسبی هر ورودی مشخص کرد. .IP "*" 4 بازنویسی پروفایل پس از حذف زیرمجموعه‌ای از پرونده‌های gcda، در حالی که یکپارچگی خلاصه و هیستوگرام حفظ می‌شود. .IP "*" 4 همچنین می‌توان از آن برای اشکال‌زدایی کدهای libgcov استفاده کرد، زیرا این ابزار بخش عمده‌ای از کدها را با کتابخانه زمان اجرا به اشتراک می‌گذارد. .PP توجه داشته باشید که برای عملیات ادغام، این پروفایل تولیدشده به‌صورت آفلاین ممکن است مقادیر اندکی متفاوت نسبت به پروفایل ادغام‌شده به‌صورت آنلاین داشته باشد. در اینجا فهرستی از تفاوت‌های معمول آمده است: .IP "*" 4 تفاوت هیستوگرام: این ابزار آفلاین پس از ادغام شمارنده‌ها، هیستوگرام را دوباره محاسبه می‌کند. بنابراین هیستوگرام حاصل دقیق است. ادغام آنلاین چنین قابلیتی ندارد \*(-- هیستوگرام از ادغام دو هیستوگرام حاصل می‌شود و نتیجه تقریبی است. .IP "*" 4 تفاوت چکسام خلاصه (summary 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 فعال کردن حالت پرگو (verbose). .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. وزن پیش‌فرض برای هر دو ۱ است. .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 فعال کردن حالت پرگو (verbose). .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 و پروفایل‌های متناظر در سامانه پروندهٔ میزبان. وزن پیش‌فرض برای هر دو ۱ است. .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 فعال کردن حالت پرگو (verbose). .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 counter) تنظیم می‌کند. .IP "\fB\-v\fR" 4 .IX Item "-v" .PD 0 .IP "\fB\-\-verbose\fR" 4 .IX Item "--verbose" .PD حالت پرگو (verbose) را فعال می‌کند. .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