.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" 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'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX العنوان "GPROF 1" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH GPROF 1 "9 فبراير 2026" binutils\-2.46 جنو .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH الاسم gprof \- يعرض بيانات تشكيلة مخطط الاستدعاء .SH موجز .IX ترويسة موجز gprof [ \-[abcDhilLrsTvwxyz] ] [ \-[ABCeEfFJnNOpPqQRStZ][\fIname\fP] ] [ \-I \fIdirs\fP ] [ \-d[\fInum\fP] ] [ \-k \fIfrom/to\fP ] [ \-m \fImin\-count\fP ] [ \-R \fImap_file\fP ] [ \-t \fItable\-length\fP ] [ \-\-[no\-]annotated\-source[=\fIname\fP] ] [ \-\-[no\-]exec\-counts[=\fIname\fP] ] [ \-\-[no\-]flat\-profile[=\fIname\fP] ] [ \-\-[no\-]graph[=\fIname\fP] ] [ \-\-[no\-]time=\fIname\fP] [ \-\-all\-lines ] [ \-\-brief ] [ \-\-debug[=\fIlevel\fP] ] [ \-\-function\-ordering ] [ \-\-file\-ordering \fImap_file\fP ] [ \-\-directory\-path=\fIdirs\fP ] [ \-\-display\-unused\-functions ] [ \-\-file\-format=\fIname\fP ] [ \-\-file\-info ] [ \-\-help ] [ \-\-line ] [ \-\-inline\-file\-names ] [ \-\-min\-count=\fIn\fP ] [ \-\-no\-static ] [ \-\-print\-path ] [ \-\-separate\-files ] [ \-\-static\-call\-graph ] [ \-\-sum ] [ \-\-table\-length=\fIlen\fP ] [ \-\-traditional ] [ \-\-version ] [ \-\-width=\fIn\fP ] [ \-\-ignore\-non\-functions ] [ \-\-demangle[=\fISTYLE\fP] ] [ \-\-no\-demangle ] [\-\-external\-symbol\-table=name] [ \fIimage\-file\fP ] [ \fIprofile\-file\fP ... ] .SH الوصف .IX ترويسة الوصف \&\f(CW\*(C`gprof\*(C'\fP يُنتج تشكيلة تنفيذ لبرامج C، أو Pascal، أو Fortran77. تُدمج تأثيرات الروتينات المستدعاة في تشكيلة كل \fIمستدعٍ\fP. تُؤخذ بيانات التشكيلة من ملف تشكيلة مخطط الاستدعاء (المبدئي \fIgmon.out\fP) الذي تُنشئه البرامج المجمعة بالخيار \fB\-pg\fP لكل من \&\f(CW\*(C`cc\*(C'\fP، و \f(CW\*(C`pc\*(C'\fP، و \f(CW\*(C`f77\*(C'\fP. يربط الخيار \fB\-pg\fP أيضًا نسخًا من روتينات المكتبة المجمعة لأغراض التشكيلة. يقرأ \f(CW\*(C`Gprof\*(C'\fP ملف الكائن المعطى (المبدئي هو \f(CW\*(C`a.out\*(C'\fP) ويؤسس العلاقة بين جدول رموزه وتشكيلة مخطط الاستدعاء من \fIgmon.out\fP. إذا حُدد أكثر من ملف تشكيلة واحد، يُظهر خرج \f(CW\*(C`gprof\*(C'\fP مجموع معلومات التشكيلة في ملفات التشكيلة المعطاة. .PP يحسب \&\f(CW\*(C`Gprof\*(C'\fP مقدار الوقت المستغرق في كل روتين. بعد ذلك، تُنشر هذه الأوقات عبر حواف مخطط الاستدعاء. تُكتشف الدورات، وتُجعل الاستدعاءات داخل الدورة تتشارك وقت الدورة. .PP تتوفر عدة أشكال للمخرجات من التحليل. .PP تُظهر \fIالتشكيلة المسطحة\fP مقدار الوقت الذي قضاه برنامجك في كل دالة، وعدد المرات التي استُدعيت فيها تلك الدالة. إذا كنت تريد ببساطة معرفة الدوال التي تستهلك معظم الدورات، فسيُذكر ذلك بإيجاز هنا. .PP يُظهر \fIمخطط الاستدعاء\fP، لكل دالة، الدوال التي استدعتها، والدوال الأخرى التي استدعتها هي، وعدد المرات. يوجد أيضًا تقدير لمقدار الوقت الذي قُضي في الروتينات الفرعية لكل دالة. يمكن أن يقترح هذا أماكن قد تحاول فيها استبعاد استدعاءات الدوال التي تستهلك الكثير من الوقت. .PP قائمة \fIالمصدر المشروح\fP هي نسخة من كود مصدر البرنامج، موسومة بعدد المرات التي نُفذ فيها كل سطر من البرنامج. .SH الخيارات .IX ترويسة الخيارات تحدد هذه الخيارات أي شكل من أشكال المخرجات المتعددة يجب أن ينتجها \&\f(CW\*(C`gprof\*(C'\fP. .PP تأخذ العديد من هذه الخيارات \fIsymspec\fP اختيارياً لتحديد الدوال التي سيتم تضمينها أو استبعادها. يمكن تحديد هذه الخيارات عدة مرات، مع symspecs مختلفة، لتضمين أو استبعاد مجموعات من الرموز. .PP تحديد أي من هذه الخيارات يتجاوز المبدئي (\fB\-p \-q\fP)، والذي يطبع تشكيلة مسطحة وتحليل مخطط استدعاء لجميع الدوال. .ie n .IP """\-A[\fIsymspec\fR]""" 4 .el .IP \f(CW\-A[\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-A[symspec] .PD 0 .ie n .IP """\-\-annotated\-source[=\fIsymspec\fR]""" 4 .el .IP \f(CW\-\-annotated\-source[=\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-\-annotated\-source[=symspec] .PD يؤدي الخيار \fB\-A\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة كود مصدر مشروح. إذا حُدد \fIsymspec\fP، فسيُطبع الخرج فقط للرموز المطابقة. .ie n .IP """\-b""" 4 .el .IP \f(CW\-b\fR 4 .IX عنصر \-b .PD 0 .ie n .IP """\-\-brief""" 4 .el .IP \f(CW\-\-brief\fR 4 .IX عنصر \-\-brief .PD إذا أعطي الخيار \fB\-b\fP، فلن يطبع \f(CW\*(C`gprof\*(C'\fP النصوص التوضيحية المسهبة التي تحاول شرح معنى جميع الحقول في الجداول. هذا مفيد إذا كنت تنوي طباعة المخرجات، أو سئمت من رؤية تلك النصوص. .ie n .IP """\-B""" 4 .el .IP \f(CW\-B\fR 4 .IX عنصر \-B يؤدي الخيار \fB\-B\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة تحليل مخطط الاستدعاء. .ie n .IP """\-C[\fIsymspec\fR]""" 4 .el .IP \f(CW\-C[\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-C[symspec] .PD 0 .ie n .IP """\-\-exec\-counts[=\fIsymspec\fR]""" 4 .el .IP \f(CW\-\-exec\-counts[=\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-\-exec\-counts[=symspec] .PD يؤدي الخيار \fB\-C\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة إحصاء للدوال وعدد مرات استدعاء كل منها. إذا حُدد \fIsymspec\fP، فسيُطبع الإحصاء فقط للرموز المطابقة. .Sp إذا كان ملف بيانات التشكيلة يحتوي على سجلات عدد الكتل البرمجية الأساسية، فإن تحديد الخيار \fB\-l\fP، مع \fB\-C\fP، سيؤدي إلى إحصاء وعرض أعداد تنفيذ الكتل البرمجية الأساسية. .ie n .IP """\-i""" 4 .el .IP \f(CW\-i\fR 4 .IX عنصر \-i .PD 0 .ie n .IP """\-\-file\-info""" 4 .el .IP \f(CW\-\-file\-info\fR 4 .IX عنصر \-\-file\-info .PD يؤدي الخيار \fB\-i\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بعرض معلومات ملخصة حول ملف (ملفات) بيانات التشكيلة ثم الخروج. يُعرض عدد سجلات المدرج التكراري، ومخطط الاستدعاء، وعدد الكتل البرمجية الأساسية. .ie n .IP """\-I \fIdirs\fR""" 4 .el .IP "\f(CW\-I \fR\f(CIdirs\fR\f(CW\fR" 4 .IX عنصر "\-I dirs" .PD 0 .ie n .IP """\-\-directory\-path=\fIdirs\fR""" 4 .el .IP \f(CW\-\-directory\-path=\fR\f(CIdirs\fR\f(CW\fR 4 .IX عنصر \-\-directory\-path=dirs .PD يحدد الخيار \fB\-I\fP قائمة بأدلة البحث للعثور على ملفات المصدر. يمكن أيضًا استخدام متغير البيئة \fIGPROF_PATH\fP لنقل هذه المعلومات. يُستخدم غالباً لمخرجات المصدر المشروح. .ie n .IP """\-J[\fIsymspec\fR]""" 4 .el .IP \f(CW\-J[\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-J[symspec] .PD 0 .ie n .IP """\-\-no\-annotated\-source[=\fIsymspec\fR]""" 4 .el .IP \f(CW\-\-no\-annotated\-source[=\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-\-no\-annotated\-source[=symspec] .PD يؤدي الخيار \fB\-J\fP إلى عدم قيام \f(CW\*(C`gprof\*(C'\fP بطباعة كود مصدر مشروح. إذا حُدد \fIsymspec\fP، فسيطبع \f(CW\*(C`gprof\*(C'\fP المصدر المشروح، ولكنه يستبعد الرموز المطابقة. .ie n .IP """\-L""" 4 .el .IP \f(CW\-L\fR 4 .IX عنصر \-L .PD 0 .ie n .IP """\-\-print\-path""" 4 .el .IP \f(CW\-\-print\-path\fR 4 .IX عنصر \-\-print\-path .PD عادةً، تُطبع أسماء ملفات المصدر مع حذف مكون المسار. يؤدي الخيار \fB\-L\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة المسار الكامل لأسماء ملفات المصدر، والذي يُحدد من معلومات التنقيح الرمزية في ملف الصورة ويكون نسبياً للدليل الذي استُدعي فيه المجمع. .ie n .IP """\-p[\fIsymspec\fR]""" 4 .el .IP \f(CW\-p[\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-p[symspec] .PD 0 .ie n .IP """\-\-flat\-profile[=\fIsymspec\fR]""" 4 .el .IP \f(CW\-\-flat\-profile[=\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-\-flat\-profile[=symspec] .PD يؤدي الخيار \fB\-p\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة تشكيلة مسطحة. إذا حُدد \fIsymspec\fP، فسيُطبع التشكيلة المسطحة فقط للرموز المطابقة. .ie n .IP """\-P[\fIsymspec\fR]""" 4 .el .IP \f(CW\-P[\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-P[symspec] .PD 0 .ie n .IP """\-\-no\-flat\-profile[=\fIsymspec\fR]""" 4 .el .IP \f(CW\-\-no\-flat\-profile[=\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-\-no\-flat\-profile[=symspec] .PD يؤدي الخيار \fB\-P\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بمنع طباعة التشكيلة المسطحة. إذا حُدد \fIsymspec\fP، فسيطبع \f(CW\*(C`gprof\*(C'\fP تشكيلة مسطحة، ولكنه يستبعد الرموز المطابقة. .ie n .IP """\-q[\fIsymspec\fR]""" 4 .el .IP \f(CW\-q[\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-q[symspec] .PD 0 .ie n .IP """\-\-graph[=\fIsymspec\fR]""" 4 .el .IP \f(CW\-\-graph[=\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-\-graph[=symspec] .PD يؤدي الخيار \fB\-q\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة تحليل مخطط الاستدعاء. إذا حُدد \fIsymspec\fP، فسيُطبع مخطط الاستدعاء فقط للرموز المطابقة وأبنائها. .ie n .IP """\-Q[\fIsymspec\fR]""" 4 .el .IP \f(CW\-Q[\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-Q[symspec] .PD 0 .ie n .IP """\-\-no\-graph[=\fIsymspec\fR]""" 4 .el .IP \f(CW\-\-no\-graph[=\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-\-no\-graph[=symspec] .PD يؤدي الخيار \fB\-Q\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بمنع طباعة مخطط الاستدعاء. إذا حُدد \fIsymspec\fP، فسيطبع \f(CW\*(C`gprof\*(C'\fP مخطط استدعاء، ولكنه يستبعد الرموز المطابقة. .ie n .IP """\-t""" 4 .el .IP \f(CW\-t\fR 4 .IX عنصر \-t .PD 0 .ie n .IP """\-\-table\-length=\fInum\fR""" 4 .el .IP \f(CW\-\-table\-length=\fR\f(CInum\fR\f(CW\fR 4 .IX عنصر \-\-table\-length=num .PD يؤدي الخيار \fB\-t\fP إلى سرد أكثر \fInum\fP أسطر مصدر نشاطًا في كل ملف مصدر عند تمكين تعليق المصدر. المبدئي هو 10. .ie n .IP """\-y""" 4 .el .IP \f(CW\-y\fR 4 .IX عنصر \-y .PD 0 .ie n .IP """\-\-separate\-files""" 4 .el .IP \f(CW\-\-separate\-files\fR 4 .IX عنصر \-\-separate\-files .PD يؤثر هذا الخيار على مخرجات المصدر المشروح فقط. عادةً، يطبع \f(CW\*(C`gprof\*(C'\fP ملفات المصدر المشروحة إلى الخرج القياسي. إذا حُدد هذا الخيار، فسيتم توليد المصدر المشروح لملف باسم \fIpath/filename\fP في الملف \fIfilename\-ann\fP. إذا كان نظام الملفات الأساسي سيقتطع \fIfilename\-ann\fP بحيث يكتب فوق \fIfilename\fP الأصلي، فسيقوم \f(CW\*(C`gprof\*(C'\fP بتوليد المصدر المشروح في الملف \fIfilename.ann\fP بدلاً من ذلك (إذا كان لاسم الملف الأصلي امتداد، فسيتم \fIاستبدال\fP ذلك الامتداد بـ \fI.ann\fP). .ie n .IP """\-Z[\fIsymspec\fR]""" 4 .el .IP \f(CW\-Z[\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-Z[symspec] .PD 0 .ie n .IP """\-\-no\-exec\-counts[=\fIsymspec\fR]""" 4 .el .IP \f(CW\-\-no\-exec\-counts[=\fR\f(CIsymspec\fR\f(CW]\fR 4 .IX عنصر \-\-no\-exec\-counts[=symspec] .PD يؤدي الخيار \fB\-Z\fP إلى عدم قيام \f(CW\*(C`gprof\*(C'\fP بطباعة إحصاء للدوال وعدد مرات استدعاء كل منها. إذا حُدد \fIsymspec\fP، فسيُطبع الإحصاء، ولكن سيتم استبعاد الرموز المطابقة. .ie n .IP """\-r""" 4 .el .IP \f(CW\-r\fR 4 .IX عنصر \-r .PD 0 .ie n .IP """\-\-function\-ordering""" 4 .el .IP \f(CW\-\-function\-ordering\fR 4 .IX عنصر \-\-function\-ordering .PD يؤدي الخيار \fB\-\-function\-ordering\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة ترتيب دوال مقترح للبرنامج بناءً على بيانات التشكيلة. يقترح هذا الخيار ترتيبًا قد يحسن سلوك التصفح (paging)، و tlb، و الخبيئة (cache) للبرنامج على الأنظمة التي تدعم الترتيب العشوائي للدوال في ملف تنفيذي. .Sp التفاصيل الدقيقة لكيفية إجبار الرابط على وضع الدوال في ترتيب معين تعتمد على النظام وهي خارج نطاق هذا الدليل. .ie n .IP """\-R \fImap_file\fR""" 4 .el .IP "\f(CW\-R \fR\f(CImap_file\fR\f(CW\fR" 4 .IX عنصر "\-R map_file" .PD 0 .ie n .IP """\-\-file\-ordering \fImap_file\fR""" 4 .el .IP "\f(CW\-\-file\-ordering \fR\f(CImap_file\fR\f(CW\fR" 4 .IX عنصر "\-\-file\-ordering map_file" .PD يؤدي الخيار \fB\-\-file\-ordering\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة ترتيب سطر ربط .o مقترح للبرنامج بناءً على بيانات التشكيلة. يقترح هذا الخيار ترتيبًا قد يحسن سلوك التصفح، و tlb، و الخبيئة للبرنامج على الأنظمة التي لا تدعم الترتيب العشوائي للدوال في ملف تنفيذي. .Sp يُنصح بشدة باستخدام المعامل \fB\-a\fP مع هذا الخيار. .Sp المعامل \fImap_file\fP هو مسار لملف يوفر تعيينات اسم الدالة إلى ملف الكائن. تنسيق الملف مشابه لمخرجات برنامج \f(CW\*(C`nm\*(C'\fP. .Sp .Vb 8 \& c\-parse.o:00000000 T yyparse \& c\-parse.o:00000004 C yyerrflag \& c\-lang.o:00000000 T maybe_objc_method_name \& c\-lang.o:00000000 T print_lang_statistics \& c\-lang.o:00000000 T recognize_objc_keyword \& c\-decl.o:00000000 T print_lang_identifier \& c\-decl.o:00000000 T print_lang_type \& ... .Ve .Sp لإنشاء \fImap_file\fP باستخدام جنو \f(CW\*(C`nm\*(C'\fP، اكتب أمراً مثل \&\f(CW\*(C`nm \-\-extern\-only \-\-defined\-only \-v \-\-print\-file\-name program\-name\*(C'\fP. .ie n .IP """\-T""" 4 .el .IP \f(CW\-T\fR 4 .IX عنصر \-T .PD 0 .ie n .IP """\-\-traditional""" 4 .el .IP \f(CW\-\-traditional\fR 4 .IX عنصر \-\-traditional .PD يؤدي الخيار \fB\-T\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة مخرجاته بأسلوب BSD "التقليدي". .ie n .IP """\-w \fIwidth\fR""" 4 .el .IP "\f(CW\-w \fR\f(CIwidth\fR\f(CW\fR" 4 .IX عنصر "\-w width" .PD 0 .ie n .IP """\-\-width=\fIwidth\fR""" 4 .el .IP \f(CW\-\-width=\fR\f(CIwidth\fR\f(CW\fR 4 .IX عنصر \-\-width=width .PD يضبط عرض خطوط المخرجات إلى \fIwidth\fP. يُستخدم حالياً فقط عند طباعة فهرس الدوال في أسفل مخطط الاستدعاء. .ie n .IP """\-x""" 4 .el .IP \f(CW\-x\fR 4 .IX عنصر \-x .PD 0 .ie n .IP """\-\-all\-lines""" 4 .el .IP \f(CW\-\-all\-lines\fR 4 .IX عنصر \-\-all\-lines .PD يؤثر هذا الخيار على مخرجات المصدر المشروح فقط. مبدئياً، يتم فقط شرح الأسطر في بداية الكتلة البرمجية الأساسية. إذا حُدد هذا الخيار، فسيتم شرح كل سطر في الكتلة الأساسية عن طريق تكرار شرح السطر الأول. هذا السلوك مشابه لـ \fB\-a\fP في \f(CW\*(C`tcov\*(C'\fP. .ie n .IP """\-\-demangle[=\fIstyle\fR]""" 4 .el .IP \f(CW\-\-demangle[=\fR\f(CIstyle\fR\f(CW]\fR 4 .IX عنصر \-\-demangle[=نمط] .PD 0 .ie n .IP """\-\-no\-demangle""" 4 .el .IP \f(CW\-\-no\-demangle\fR 4 .IX عنصر \-\-no\-demangle .PD تتحكم هذه الخيارات في ما إذا كان يجب فك تشويه (demangle) أسماء رموز C++ عند طباعة المخرجات. المبدئي هو فك تشويه الرموز. يمكن استخدام الخيار \&\f(CW\*(C`\-\-no\-demangle\*(C'\fP لإيقاف فك التشويه. للمجمعات المختلفة أساليب تشويه مختلفة. يمكن استخدام معامل نمط فك التشويه الاختياري لاختيار نمط فك تشويه مناسب لمجمعك. .SS "خيارات التحليل" .IX فرع "خيارات التحليل" .ie n .IP """\-a""" 4 .el .IP \f(CW\-a\fR 4 .IX عنصر \-a .PD 0 .ie n .IP """\-\-no\-static""" 4 .el .IP \f(CW\-\-no\-static\fR 4 .IX عنصر \-\-no\-static .PD يؤدي الخيار \fB\-a\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بمنع طباعة الدوال المصرح عنها ساكنًا (خاصة). (هذه هي الدوال التي لا تُدرج أسماؤها كعالمية، والتي لا تكون مرئية خارج الملف/الدالة/الكتلة التي عُرّفت فيها.) الوقت المستغرق في هذه الدوال، والاستدعاءات منها وإليها، وما إلى ذلك، ستُنسب جميعها إلى الدالة التي حُمّلت مباشرة قبلها في الملف التنفيذي. يؤثر هذا الخيار على كل من التشكيلة المسطحة ومخطط الاستدعاء. .ie n .IP """\-c""" 4 .el .IP \f(CW\-c\fR 4 .IX عنصر \-c .PD 0 .ie n .IP """\-\-static\-call\-graph""" 4 .el .IP \f(CW\-\-static\-call\-graph\fR 4 .IX عنصر \-\-static\-call\-graph .PD يؤدي الخيار \fB\-c\fP إلى تعزيز مخطط استدعاء البرنامج بواسطة الكشف الذي يفحص مساحة النص لملف الكائن ويحدد استدعاءات الدوال في كود الآلة الثنائي. نظرًا لأن سجلات مخطط الاستدعاء العادية تُولد فقط عند الدخول إلى الدوال، فإن هذا الخيار يحدد الأبناء الذين كان من الممكن استدعاؤهم، لكن لم يتم استدعاؤهم أبدًا. كما يتم تحديد استدعاءات الدوال التي لم تُجمع مع تمكين التشكيلة، ولكن فقط إذا كانت مدخلات جدول الرموز موجودة لها. استدعاءات روتينات المكتبة الديناميكية عادةً \fIلا\fP تُوجد بهذا الخيار. يُشار إلى الآباء أو الأبناء الذين حُددوا عبر هذا الكشف في مخطط الاستدعاء بعدد استدعاءات يبلغ \fB0\fP. .ie n .IP """\-D""" 4 .el .IP \f(CW\-D\fR 4 .IX عنصر \-D .PD 0 .ie n .IP """\-\-ignore\-non\-functions""" 4 .el .IP \f(CW\-\-ignore\-non\-functions\fR 4 .IX عنصر \-\-ignore\-non\-functions .PD يؤدي الخيار \fB\-D\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بتجاهل الرموز التي لا تُعرف بأنها دوال. سيعطي هذا الخيار بيانات تشكيلة أكثر دقة على الأنظمة التي تدعمه (Solaris و HPUX على سبيل المثال). .ie n .IP """\-k \fIfrom\fR/\fIto\fR""" 4 .el .IP "\f(CW\-k \fR\f(CIfrom\fR\f(CW/\fR\f(CIto\fR\f(CW\fR" 4 .IX عنصر "\-k from/to" يسمح لك الخيار \fB\-k\fP بحذف أي أقواس من مخطط الاستدعاء من الرموز المطابقة لـ symspec \fIfrom\fP إلى تلك المطابقة لـ symspec \fIto\fP. .ie n .IP """\-l""" 4 .el .IP \f(CW\-l\fR 4 .IX عنصر \-l .PD 0 .ie n .IP """\-\-line""" 4 .el .IP \f(CW\-\-line\fR 4 .IX عنصر \-\-line .PD يُمكن الخيار \fB\-l\fP التشكيلة سطراً بسطر، مما يؤدي إلى احتساب ضربات المدرج التكراري لأسطر كود المصدر الفردية، بدلاً من الدوال. تعمل هذه الميزة فقط مع البرامج المجمعة بواسطة إصدارات قديمة من مجمع \f(CW\*(C`gcc\*(C'\fP. الإصدارات الأحدث من \&\f(CW\*(C`gcc\*(C'\fP مصممة للعمل مع أداة \f(CW\*(C`gcov\*(C'\fP بدلاً من ذلك. .Sp إذا جُمّع البرنامج مع تمكين عد الكتل الأساسية، فسيحدد هذا الخيار أيضًا عدد مرات تنفيذ كل سطر من الكود. بينما يمكن أن تساعد التشكيلة سطراً بسطر في عزل مكان قضاء البرنامج لوقته داخل دالة كبيرة، إلا أنها تزيد أيضًا بشكل كبير من وقت تشغيل \f(CW\*(C`gprof\*(C'\fP، وتضخم عدم الدقة الإحصائية. .ie n .IP """\-\-inline\-file\-names""" 4 .el .IP \f(CW\-\-inline\-file\-names\fR 4 .IX عنصر \-\-inline\-file\-names يؤدي هذا الخيار إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة ملف المصدر بعد كل رمز في كل من التشكيلة المسطحة ومخطط الاستدعاء. يُطبع المسار الكامل للملف إذا استُخدم مع الخيار \fB\-L\fP. .ie n .IP """\-m \fInum\fR""" 4 .el .IP "\f(CW\-m \fR\f(CInum\fR\f(CW\fR" 4 .IX عنصر "\-m num" .PD 0 .ie n .IP """\-\-min\-count=\fInum\fR""" 4 .el .IP \f(CW\-\-min\-count=\fR\f(CInum\fR\f(CW\fR 4 .IX عنصر \-\-min\-count=num .PD يؤثر هذا الخيار على مخرجات عدد التنفيذ فقط. يتم حجب الرموز التي نُفذت أقل من \fInum\fP مرات. .ie n .IP """\-n\fIsymspec\fR""" 4 .el .IP \f(CW\-n\fR\f(CIsymspec\fR\f(CW\fR 4 .IX عنصر \-nsymspec .PD 0 .ie n .IP """\-\-time=\fIsymspec\fR""" 4 .el .IP \f(CW\-\-time=\fR\f(CIsymspec\fR\f(CW\fR 4 .IX عنصر \-\-time=symspec .PD يؤدي الخيار \fB\-n\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP، في تحليل مخطط الاستدعاء، بنشر الأوقات فقط للرموز المطابقة لـ \fIsymspec\fP. .ie n .IP """\-N\fIsymspec\fR""" 4 .el .IP \f(CW\-N\fR\f(CIsymspec\fR\f(CW\fR 4 .IX عنصر \-Nsymspec .PD 0 .ie n .IP """\-\-no\-time=\fIsymspec\fR""" 4 .el .IP \f(CW\-\-no\-time=\fR\f(CIsymspec\fR\f(CW\fR 4 .IX عنصر \-\-no\-time=symspec .PD يؤدي الخيار \fB\-n\fP إلى عدم قيام \f(CW\*(C`gprof\*(C'\fP، في تحليل مخطط الاستدعاء، بنشر الأوقات للرموز المطابقة لـ \fIsymspec\fP. .ie n .IP """\-S\fIfilename\fR""" 4 .el .IP \f(CW\-S\fR\f(CIfilename\fR\f(CW\fR 4 .IX عنصر \-Sfilename .PD 0 .ie n .IP """\-\-external\-symbol\-table=\fIfilename\fR""" 4 .el .IP \f(CW\-\-external\-symbol\-table=\fR\f(CIfilename\fR\f(CW\fR 4 .IX عنصر \-\-external\-symbol\-table=filename .PD يؤدي الخيار \fB\-S\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بقراءة ملف جدول رموز خارجي، مثل \fI/proc/kallsyms\fP، بدلاً من قراءة جدول الرموز من ملف الكائن المعطى (المبدئي هو \f(CW\*(C`a.out\*(C'\fP). هذا مفيد لتشكيل وحدات النواة. .ie n .IP """\-z""" 4 .el .IP \f(CW\-z\fR 4 .IX عنصر \-z .PD 0 .ie n .IP """\-\-display\-unused\-functions""" 4 .el .IP \f(CW\-\-display\-unused\-functions\fR 4 .IX عنصر \-\-display\-unused\-functions .PD إذا أعطيت الخيار \fB\-z\fP، فسيذكر \f(CW\*(C`gprof\*(C'\fP جميع الدوال في التشكيلة المسطحة، حتى تلك التي لم تُستدع أبدًا، والتي لم يُقض أي وقت فيها. هذا مفيد بالاقتران مع الخيار \&\fB\-c\fP لاكتشاف الروتينات التي لم تُستدع أبدًا. .SS "خيارات متنوعة" .IX فرع "خيارات متنوعة" .ie n .IP """\-d[\fInum\fR]""" 4 .el .IP \f(CW\-d[\fR\f(CInum\fR\f(CW]\fR 4 .IX عنصر \-d[num] .PD 0 .ie n .IP """\-\-debug[=\fInum\fR]""" 4 .el .IP \f(CW\-\-debug[=\fR\f(CInum\fR\f(CW]\fR 4 .IX عنصر \-\-debug[=num] .PD يحدد الخيار \fB\-d\fP \fInum\fP خيارات التنقيح. إذا لم يُحدد \fInum\fP، يتم تمكين كل التنقيح. .ie n .IP """\-h""" 4 .el .IP \f(CW\-h\fR 4 .IX عنصر \-h .PD 0 .ie n .IP """\-\-help""" 4 .el .IP \f(CW\-\-help\fR 4 .IX عنصر \-\-help .PD يطبع الخيار \fB\-h\fP طريقة استخدام سطر الأوامر. .ie n .IP """\-O\fIname\fR""" 4 .el .IP \f(CW\-O\fR\f(CIname\fR\f(CW\fR 4 .IX عنصر \-Oname .PD 0 .ie n .IP """\-\-file\-format=\fIname\fR""" 4 .el .IP \f(CW\-\-file\-format=\fR\f(CIname\fR\f(CW\fR 4 .IX عنصر \-\-file\-format=name .PD يختار تنسيق ملفات بيانات التشكيلة. التنسيقات المعترف بها هي \&\fBauto\fP (المبدئي)، و \fBbsd\fP، و \fB4.4bsd\fP، و \fBmagic\fP، و \&\fBprof\fP (غير مدعوم بعد). .ie n .IP """\-s""" 4 .el .IP \f(CW\-s\fR 4 .IX عنصر \-s .PD 0 .ie n .IP """\-\-sum""" 4 .el .IP \f(CW\-\-sum\fR 4 .IX عنصر \-\-sum .PD يؤدي الخيار \fB\-s\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بتلخيص المعلومات في ملفات بيانات التشكيلة التي قرأها، وكتابة ملف بيانات تشكيلة يسمى \fIgmon.sum\fP، والذي يحتوي على كل المعلومات من ملفات بيانات التشكيلة التي قرأها \f(CW\*(C`gprof\*(C'\fP. قد يكون الملف \fIgmon.sum\fP أحد ملفات الإدخال المحددة؛ تأثير ذلك هو دمج البيانات في ملفات الإدخال الأخرى في \fIgmon.sum\fP. .Sp في النهاية يمكنك تشغيل \f(CW\*(C`gprof\*(C'\fP مرة أخرى بدون \fB\-s\fP لتحليل البيانات التراكمية في الملف \fIgmon.sum\fP. .ie n .IP """\-v""" 4 .el .IP \f(CW\-v\fR 4 .IX عنصر \-v .PD 0 .ie n .IP """\-\-version""" 4 .el .IP \f(CW\-\-version\fR 4 .IX عنصر \-\-version .PD يؤدي الخيار \fB\-v\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بطباعة رقم الإصدار الحالي، ثم الخروج. .SS "خيارات مهجورة" .IX فرع "خيارات مهجورة" استُبدلت هذه الخيارات بإصدارات أحدث تستخدم symspecs. .ie n .IP """\-e \fIfunction_name\fR""" 4 .el .IP "\f(CW\-e \fR\f(CIfunction_name\fR\f(CW\fR" 4 .IX عنصر "\-e function_name" يخبر الخيار \fB\-e\fP \fIfunction\fP برنامج \f(CW\*(C`gprof\*(C'\fP بعدم طباعة معلومات حول الدالة \fIfunction_name\fP (وأبنائها...) في مخطط الاستدعاء. ستظل الدالة مدرجة كابن لأي دوال تستدعيها، ولكن رقم فهرسها سيظهر كـ \fB[not printed]\fP. يمكن إعطاء أكثر من خيار \fB\-e\fP؛ ويمكن تحديد \fIfunction_name\fP واحد فقط مع كل خيار \fB\-e\fP. .ie n .IP """\-E \fIfunction_name\fR""" 4 .el .IP "\f(CW\-E \fR\f(CIfunction_name\fR\f(CW\fR" 4 .IX عنصر "\-E function_name" يعمل الخيار \f(CW\*(C`\-E \fP\f(CIfunction\f(CW\*(C'\fP مثل الخيار \f(CW\*(C`\-e\*(C'\fP، ولكن الوقت المستغرق في الدالة (والأبناء الذين لم يستدعوا من أي مكان آخر)، لن يُستخدم لحساب النسب المئوية للوقت لمخطط الاستدعاء. يمكن إعطاء أكثر من خيار \fB\-E\fP؛ ويمكن تحديد \fIfunction_name\fP واحد فقط مع كل خيار \fB\-E\fP. .ie n .IP """\-f \fIfunction_name\fR""" 4 .el .IP "\f(CW\-f \fR\f(CIfunction_name\fR\f(CW\fR" 4 .IX عنصر "\-f function_name" يؤدي الخيار \fB\-f\fP \fIfunction\fP إلى قيام \f(CW\*(C`gprof\*(C'\fP بقصر مخطط الاستدعاء على الدالة \fIfunction_name\fP وأبنائها (وأبنائهم...). يمكن إعطاء أكثر من خيار \fB\-f\fP؛ ويمكن تحديد \fIfunction_name\fP واحد فقط مع كل خيار \fB\-f\fP. .ie n .IP """\-F \fIfunction_name\fR""" 4 .el .IP "\f(CW\-F \fR\f(CIfunction_name\fR\f(CW\fR" 4 .IX عنصر "\-F function_name" يعمل الخيار \fB\-F\fP \fIfunction\fP مثل الخيار \f(CW\*(C`\-f\*(C'\fP، ولكن فقط الوقت المستغرق في الدالة وأبنائها (وأبنائهم...) سيُستخدم لتحديد الوقت الإجمالي والنسب المئوية للوقت لمخطط الاستدعاء. يمكن إعطاء أكثر من خيار \fB\-F\fP؛ ويمكن تحديد \fIfunction_name\fP واحد فقط مع كل خيار \&\fB\-F\fP. يتجاوز الخيار \fB\-F\fP الخيار \fB\-E\fP. .SH الملفات .IX ترويسة الملفات .ie n .IP """\fIa.out\fR""" 4 .el .IP \f(CW\fR\f(CIa.out\fR\f(CW\fR 4 .IX عنصر a.out قائمة الأسماء ومساحة النص. .ie n .IP """\fIgmon.out\fR""" 4 .el .IP \f(CW\fR\f(CIgmon.out\fR\f(CW\fR 4 .IX عنصر gmon.out مخطط الاستدعاء الديناميكي والتشكيلة. .ie n .IP """\fIgmon.sum\fR""" 4 .el .IP \f(CW\fR\f(CIgmon.sum\fR\f(CW\fR 4 .IX عنصر gmon.sum مخطط الاستدعاء الديناميكي والتشكيلة الملخصة. .SH العلل .IX ترويسة العلل تُعرض دقة المعاينة، لكنها تظل إحصائية في أحسن الأحوال. نفترض أن الوقت لكل تنفيذ لدالة يمكن التعبير عنه بالوقت الإجمالي للدالة مقسوماً على عدد مرات استدعاء الدالة. وبالتالي فإن الوقت المنشور عبر أقواس مخطط الاستدعاء إلى آباء الدالة يتناسب طردياً مع عدد مرات اجتياز ذلك القوس. .PP الآباء الذين لم يتم تشكيلهم بأنفسهم سيتم نشر وقت أبنائهم المشكلين إليهم، لكنهم سيظهرون وكأنهم استُدعوا تلقائياً في قائمة مخطط الاستدعاء، ولن يُنشر وقتهم بشكل أكبر. وبالمثل، فإن مقتنصي الإشارات (signal catchers)، على الرغم من تشكيلهم، سيظهرون وكأنهم تلقائيون (وإن كان لأسباب أكثر غموضاً). يجب أن يُنشر وقت أي أبناء مشكلين لمقتنصي الإشارات بشكل صحيح، ما لم يُستدع مقتنص الإشارة أثناء تنفيذ روتين التشكيلة، وفي هذه الحالة يُفقد كل شيء. .PP يجب أن يستدعي البرنامج المشكل \f(CW\*(C`exit\*(C'\fP(2) أو يعود بشكل طبيعي ليتم حفظ معلومات التشكيلة في الملف \fIgmon.out\fP. .SH "انظر أيضًا" .IX ترويسة "انظر أيضًا" \&\fBmonitor\fP\|(3)، و \fBprofil\fP\|(2)، و \fBcc\fP\|(1)، و \fBprof\fP\|(1)، ومدخل Info لـ \fIgprof\fP. .PP "An Execution Profiler for Modular Programs"، بقلم S. Graham، P. Kessler، M. McKusick؛ Software \- Practice and Experience، المجلد 13، ص 671\-685، 1983. .PP "gprof: A Call Graph Execution Profiler"، بقلم S. Graham، P. Kessler، M. McKusick؛ Proceedings of the SIGPLAN '82 Symposium on Compiler Construction، SIGPLAN Notices، المجلد 17، العدد 6، ص 120\-126، يونيو 1982. .SH "حقوق النسخ" .IX ترويسة "حقوق النسخ" حقوق النشر (c) 1988\-2026 مؤسسة البرمجيات الحرة، المحدودة. .PP يُمنح الإذن بنسخ وتوزيع و/أو تعديل هذا المستند بموجب شروط رخصة جنو للوثائق الحرة (GNU Free Documentation License)، الإصدار 1.3 أو أي إصدار لاحق تنشره مؤسسة البرمجيات الحرة؛ مع عدم وجود أقسام ثابتة، وبدون نصوص غلاف أمامي، وبدون نصوص غلاف خلفي. نُسخة من الرخصة مضمنة في القسم المعنون "GNU Free Documentation License". .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .