.\" 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، هم‌زمان با حفظ سازگاری بخش خلاصه (summary) و بافت‌نگاشت (histogram). .IP "*" 4 همچنین می‌توان از آن برای اشکال‌زدایی کدهای libgcov استفاده کرد، زیرا بخش عمدهٔ کد این ابزار با کتابخانه زمان اجرا مشترک است. .PP توجه داشته باشید که در عملیات ادغام، مقادیر این پروفایل که به‌صورت آفلاین تولید شده است ممکن است تفاوت‌های جزئی با پروفایل ادغام‌شده به‌صورت آنلاین داشته باشد. در اینجا فهرستی از تفاوت‌های معمول آمده است: .IP "*" 4 تفاوت هیستوگرام: این ابزار آفلاین، هیستوگرام را پس از ادغام شمارنده‌ها مجدداً محاسبه می‌کند. بنابراین هیستوگرام حاصل دقیق است. ادغام آنلاین چنین قابلیتی ندارد \*(-- هیستوگرام از ادغام دو هیستوگرام به دست می‌آید و نتیجه یک مقدار تقریبی خواهد بود. .IP "*" 4 تفاوت چِک‌سام خلاصه: چِک‌سام خلاصه از یک عملیات \s-1CRC32\s0 استفاده می‌کند. این مقدار به ترتیب پیوند در لیست پیوندی اشیاء gcov-info بستگی دارد. این ترتیب در gcov-tool نسبت به ادغام آنلاین متفاوت است؛ بنابراین، داشتن چِک‌سام‌های خلاصهٔ متفاوت طبیعی و مورد انتظار است. این موضوع اهمیتی ندارد زیرا کامپایلر در هیچ‌کجا از این چِک‌سام استفاده نمی‌کند. .IP "*" 4 تفاوت مقادیر شمارندهٔ پروفایل مقادیر (value profile): برخی مقادیر شمارنده برای پروفایل مقادیر، وابسته به زمان اجرا (runtime) هستند، مانند آدرس‌های هیپ (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 چاپ امتیاز همپوشانی در سطح شیء (object). .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 فعال‌سازی حالت پرگو (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)، نسخه ۱.۳ یا هر نسخه بعدی منتشر شده توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation) اعطا می‌شود؛ با این شرایط که بخش‌های تغییرناپذیر عبارتند از \*(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