Provided by: manpages-ro_4.27.0-1_all bug

NUME

       gprof - afișează datele de profil ale graficului de apeluri

SINOPSIS

       gprof [ -[abcDhilLrsTvwxyz] ] [ -[ABCeEfFJnNOpPqQRStZ][nume] ]
        [ -I directoare ] [ -d[număr] ] [ -k de_la/până_la ]
        [ -m nr-min-cicluri ] [ -R fișier-corespondențe ] [ -t lungime-tabel ]
        [ --[no-]annotated-source[=nume] ]
        [ --[no-]exec-counts[=nume] ]
        [ --[no-]flat-profile[=nume] ] [ --[no-]graph[=nume] ]
        [ --[no-]time=nume] [ --all-lines ] [ --brief ]
        [ --debug[=nivel] ] [ --function-ordering ]
        [ --file-ordering fișier-corespondențe ] [ --directory-path=directoare ]
        [ --display-unused-functions ] [ --file-format=nume ]
        [ --file-info ] [ --help ] [ --line ] [ --inline-file-names ]
        [ --min-count=n ] [ --no-static ] [ --print-path ]
        [ --separate-files ] [ --static-call-graph ] [ --sum ]
        [ --table-length=lungime ] [ --traditional ] [ --version ]
        [ --width=n ] [ --ignore-non-functions ]
        [ --demangle[=STIL] ] [ --no-demangle ]
        [--external-symbol-table=nume]
        [ fișier-imagine ] [ fișier-profil ... ]

DESCRIERE

       «gprof» produce un profil de execuție a programelor C, Pascal sau Fortran77. Efectul rutinelor apelate
       este încorporat în profilul fiecărui apelant. Datele profilului sunt preluate din fișierul de profil al
       graficului de apeluri (gmon.out implicit) care este creat de programele compilate cu opțiunea -pg a „cc”,
       „pc” și „f77”. Opțiunea -pg face legătura și cu versiunile rutinelor de bibliotecă care sunt compilate
       pentru profilare. «gprof» citește fișierul obiect dat (valoarea implicită este „a.out”) și stabilește
       relația dintre tabelul său de simboluri și profilul graficului de apeluri din gmon.out. În cazul în care
       sunt specificate mai multe fișiere de profil, rezultatul «gprof» arată suma informațiilor de profil din
       fișierele de profil date.

       Dacă utilizați gcc 2.95.x sau 3.0 pentru a vă compila binarele, este posibil să fie necesar să adăugați
       -fprofile-arcs la linia de comandă de compilare pentru ca graficele de apeluri să fie stocate corect în
       gmon.out.

       «gprof» calculează cantitatea de timp petrecută în fiecare rutină. Apoi, aceste durate sunt propagate
       de-a lungul marginilor graficului de apeluri. Se descoperă cicluri, iar apelurile în cadrul unui ciclu
       sunt efectuate pentru a împărți timpul ciclului.

       În urma analizei sunt disponibile mai multe formate de rezultate.

       Profilul plan arată cât timp a petrecut programul dvs. în fiecare funcție și de câte ori a fost apelată
       funcția respectivă. Dacă doriți pur și simplu să știți ce funcții consumă cele mai multe cicluri, acest
       lucru este precizat concis aici.

       Graficul de apelare arată, pentru fiecare funcție, ce funcții au apelat-o, ce alte funcții au fost
       apelate și de câte ori. Există, de asemenea, o estimare a timpului petrecut în subrutinele fiecărei
       funcții. Acest lucru poate sugera locuri în care ați putea încerca să eliminați apelurile de funcții care
       consumă mult timp.

       Lista sursă adnotată este o copie a codului sursă al programului, etichetată cu numărul de ori de câte
       ori a fost executată fiecare linie a programului.

OPȚIUNI

       Aceste opțiuni specifică pe care dintre diferitele formate de ieșire trebuie să-l producă «gprof».

       Multe dintre aceste opțiuni acceptă un argument specificare-simbol opțional pentru a specifica funcțiile
       care trebuie incluse sau excluse. Aceste opțiuni pot fi specificate de mai multe ori, cu diferite
       argumente „specificare-simbol”, pentru a include sau exclude seturi de simboluri.

       Specificarea oricăreia dintre aceste opțiuni înlocuiește opțiunea implicită (-p -q), care afișează un
       profil plan și o analiză grafică a apelurilor pentru toate funcțiile.

       "-A[symspec]"
       "--annotated-source[=symspec]"
           Opțiunea  -A  face  ca  «gprof»  să  afișeze  codul  sursă  adnotat.  Dacă este specificat argumentul
           specificare-simbol, imprimă numai ieșirea pentru simbolurile corespunzătoare.

       "-b"
       "--brief"
           Specificarea oricăreia dintre aceste opțiuni înlocuiește opțiunea implicită (-p -q), care afișează un
           profil plan și o analiză grafică a apelurilor pentru toate funcțiile.

       "-B"
           Opțiunea -B face ca «gprof» să afișeze analiza grafică a apelurilor.

       "-C[symspec]"
       "--exec-counts[=symspec]"
           Opțiunea -C face ca «gprof» să afișeze o listă a funcțiilor și  numărul  de  apeluri  pentru  fiecare
           dintre  ele.  Dacă  este  specificat argumentul specificare-simbol, imprimă contorizarea numai pentru
           simbolurile care corespund.

           În cazul în care fișierul de date de profil conține înregistrări de numărare a  blocurilor  de  bază,
           specificarea  opțiunii  -l,  împreună cu -C, va determina numărarea și afișarea numărului de execuții
           ale blocurilor de bază.

       "-i"
       "--file-info"
           Opțiunea -i face ca «gprof» să afișeze informații sumare  despre  fișierul  (fișierele)  de  date  de
           profil  și  apoi  să  iasă.  Se  afișează  numărul de înregistrări ale histogramei, ale graficului de
           apeluri și ale numărului de blocuri de bază.

       "-I dirs"
       "--directory-path=dirs"
           Opțiunea -I specifică o listă de directoare de căutare în care se caută fișierele sursă. Variabila de
           mediu GPROF_PATH poate fi, de asemenea, utilizată pentru a transmite aceste informații. Se utilizează
           mai ales pentru ieșirea de surse adnotate.

       "-J[symspec]"
       "--no-annotated-source[=symspec]"
           Opțiunea -J face ca «gprof»  să  nu  afișeze  codul  sursă  adnotat.  Dacă  se  specifică  argumentul
           specificare-simbol, «gprof» afișează codul sursă adnotat, dar exclude simbolurile corespunzătoare.

       "-L"
       "--print-path"
           În mod normal, numele fișierelor sursă sunt afișate cu componenta de rută suprimată. Opțiunea -L face
           ca  «gprof»  să  afișeze numele de rută complet al numelor de fișiere sursă, care este determinat din
           informațiile simbolice de depanare din fișierul imagine și este relativ la directorul în care a  fost
           invocat compilatorul.

       "-p[symspec]"
       "--flat-profile[=symspec]"
           Opțiunea   -p   face   ca   «gprof»  să  afișeze  un  profil  plan.  Dacă  este  specificatargumentul
           specificare-simbol, imprimă profilul plan numai pentru simbolurile corespunzătoare.

       "-P[symspec]"
       "--no-flat-profile[=symspec]"
           Opțiunea -P face ca «gprof» să suprime imprimarea unui profil  plan.  Dacă  se  specifică  argumentul
           specificare-simbol, «gprof» afișează un profil plan, dar exclude simbolurile corespunzătoare.

       "-q[symspec]"
       "--graph[=symspec]"
           Opțiunea  -q  face  ca  «gprof» să afișeze analiza grafică a apelurilor. Dacă se specifică argumentul
           specificare-simbol, imprimă graficul de apeluri numai pentru simbolurile  corespunzătoare  și  pentru
           copiii acestora.

       "-Q[symspec]"
       "--no-graph[=symspec]"
           Opțiunea  -Q  face ca «gprof» să suprime afișarea graficului de apeluri. Dacă se specifică argumentul
           specificare-simbol, «gprof» afișează un grafic de apeluri, dar exclude simbolurile corespunzătoare.

       "-t"
       "--table-length=num"
           Opțiunea -t face ca, atunci când este activată adnotarea sursei, să fie listate cele mai active linii
           de sursă număr din fiecare fișier sursă. Opțiunea implicită este 10.

       "-y"
       "--separate-files"
           Această opțiune afectează doar ieșirea sursei adnotate. În  mod  normal,  «gprof»  imprimă  fișierele
           sursă  adnotate  la  ieșirea  standard.  Dacă  se specifică această opțiune, sursa adnotată pentru un
           fișier numit rută/către/nume_fișier este generată în  fișierul  nume_fișier-ann.  În  cazul  în  care
           sistemul  de  fișiere  subiacent  ar  trunchia  nume_fișier-ann astfel încât să suprascrie originalul
           nume_fișier, «gprof» generează sursa adnotată în fișierul nume_fișier.ann  în  locul  acestuia  (dacă
           numele original al fișierului are o extensie, această extensie este înlocuită cu .ann).

       "-Z[symspec]"
       "--no-exec-counts[=symspec]"
           Opțiunea  -Z  face ca «gprof» să nu afișeze o listă a funcțiilor și numărul de apeluri pentru fiecare
           dintre ele. Dacă este specificat argumentul specificare-simbol,  imprimă  numărătoarea,  dar  exclude
           simbolurile corespunzătoare.

       "-r"
       "--function-ordering"
           Opțiunea  --function-ordering  face  ca «gprof» să afișeze o sugestie de ordonare a funcțiilor pentru
           program pe baza datelor de profilare. Această opțiune sugerează  o  ordonare  care  poate  îmbunătăți
           comportamentul de paginare, tlb și cache pentru program pe sistemele care acceptă ordonarea arbitrară
           a funcțiilor într-un executabil.

           Detaliile  exacte  ale  modului  în care se forțează editorul de legături să plaseze funcțiile într-o
           anumită ordine depind de sistem și nu fac obiectul acestui manual.

       "-R map_file"
       "--file-ordering map_file"
           Opțiunea --file-ordering face ca «gprof» să afișeze o sugestie de ordonare a liniilor de legătură  .o
           pentru  program  pe  baza  datelor  de  profilare.  Această  opțiune  sugerează o ordonare care poate
           îmbunătăți comportamentul de paginare, tlb și cache pentru  program  pe  sistemele  care  nu  acceptă
           ordonarea arbitrară a funcțiilor într-un executabil.

           Utilizarea argumentului -a este foarte recomandată cu această opțiune.

           Argumentul  fișier-corespondențe  este  un nume de rută către un fișier care furnizează corespondențe
           între numele funcției și fișierul  obiect.  Formatul  fișierului  este  similar  cu  cel  al  ieșirii
           programului «nm».

                   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
                   ...

           Pentru  a  crea  un  fișier-corespondențe  cu  GNU  «nm»,  tastați o comandă precum «nm --extern-only
           --defined-only -v --print-file-name program-name».

       "-T"
       "--traditional"
           Opțiunea -T face ca «gprof« să afișeze ieșirea în stilul BSD „tradițional”.

       "-w width"
       "--width=width"
           Stabilește lățimea liniilor de ieșire la lățime.  În  prezent,  se  utilizează  numai  la  imprimarea
           indexului funcției în partea de jos a graficului de apeluri.

       "-x"
       "--all-lines"
           Această  opțiune afectează doar ieșirea sursei adnotate. În mod implicit, sunt adnotate numai liniile
           de la începutul unui bloc de bază. Dacă se specifică această opțiune, fiecare linie dintr-un bloc  de
           bază  este  adnotată  prin repetarea adnotării pentru prima linie. Acest comportament este similar cu
           «tcov -a».

       "--demangle[=style]"
       "--no-demangle"
           Aceste opțiuni controlează dacă numele  simbolurilor  C++  trebuie  să  fie  separate  la  imprimarea
           rezultatelor. Opțiunea implicită este să se decodifice simbolurile. Opțiunea „--no-demangle” poate fi
           utilizată  pentru a dezactiva decodificarea. Compilatoare diferite au stiluri diferite de codificare.
           Argumentul opțional „stil decodificare” poate fi utilizat pentru a  alege  un  stil  de  decodificare
           adecvat pentru compilatorul dumneavoastră.

   Opțiuni de analiză
       "-a"
       "--no-static"
           Opțiunea  -a face ca «gprof» să suprime afișarea funcțiilor declarate static (private); (acestea sunt
           funcții ale căror nume nu  sunt  listate  ca  fiind  globale  și  care  nu  sunt  vizibile  în  afara
           fișierului/funcției/blocului  în care au fost definite). Timpul petrecut în aceste funcții, apelurile
           către/de la acestea etc., vor fi toate atribuite funcției care a fost încărcată direct înaintea ei în
           fișierul executabil. Această opțiune afectează atât profilul plan, cât și graficul de apeluri.

       "-c"
       "--static-call-graph"
           Opțiunea -c face ca graficul de apeluri al programului să fie mărit cu o  euristică  care  examinează
           spațiul  de  text  al fișierului obiect și identifică apelurile de funcții în codul binar al mașinii.
           Deoarece înregistrările normale ale graficului de  apeluri  sunt  generate  numai  atunci  când  sunt
           introduse  funcții,  această  opțiune  identifică  copii  care ar fi putut fi apelați, dar nu au fost
           niciodată. Apelurile către funcții care  nu  au  fost  compilate  cu  profilarea  activată  sunt,  de
           asemenea,  identificate,  dar numai dacă sunt prezente intrări în tabela de simboluri pentru acestea.
           Apelurile către rutinele bibliotecii dinamice nu sunt de obicei găsite de această  opțiune.  Părinții
           sau copiii identificați prin intermediul acestei euristici sunt indicați în graficul de apeluri cu un
           număr de apeluri de 0.

       "-D"
       "--ignore-non-functions"
           Opțiunea  -D  face  ca  «gprof» să ignore simbolurile despre care nu se știe că sunt funcții. Această
           opțiune va oferi date de profil mai precise pe sistemele în care este suportată (Solaris și HPUX,  de
           exemplu).

       "-k from/to"
           Opțiunea  -k  vă  permite  să  ștergeți din graficul de apelare toate arcurile de la simbolurile care
           corespund de_la specificare-simbol la cele care corespund până_la specificare-simbol.

       "-l"
       "--line"
           Opțiunea -l activează profilarea linie cu linie, ceea ce  face  ca  rezultatele  histogramei  să  fie
           încărcate  pe  linii individuale de cod sursă, în loc de funcții. Această caracteristică funcționează
           numai cu programe compilate de versiuni mai vechi ale compilatorului «gcc».  Versiunile  mai  noi  de
           «gcc» sunt concepute pentru a funcționa în schimb cu instrumentul «gcov».

           Dacă  programul  a  fost  compilat  cu  contorizarea  blocurilor de bază activată, această opțiune va
           identifica, de asemenea, de câte ori a fost executată fiecare linie de cod.  În  timp  ce  profilarea
           linie  cu  linie  poate  ajuta la izolarea locului într-o funcție mare în care un program își petrece
           timpul, aceasta crește semnificativ  timpul  de  execuție  al  «gprof»  și  amplifică  inexactitățile
           statistice.

       "--inline-file-names"
           Această opțiune face ca «gprof» să afișeze fișierul sursă după fiecare simbol, atât în profilul plan,
           cât și în graficul de apeluri. Ruta completă a fișierului este imprimată dacă este utilizată împreună
           cu opțiunea -L.

       "-m num"
       "--min-count=num"
           Această  opțiune  afectează doar numărul de execuții. Simbolurile care sunt executate de mai puțin de
           număr ori sunt suprimate.

       "-nsymspec"
       "--time=symspec"
           Opțiunea -n face ca «gprof», în  analiza  grafică  a  apelurilor,  să  propage  timpii  numai  pentru
           simbolurile care corespund cu specificare-simbol.

       "-Nsymspec"
       "--no-time=symspec"
           Opțiunea -n face ca «gprof», în analiza grafică a apelurilor, să nu propage timpii pentru simbolurile
           care corespund cu specificare-simbol.

       "-Sfilename"
       "--external-symbol-table=filename"
           Opțiunea  -S  face  ca  «gprof»  să  citească  un  fișier  extern  de  tabele de simboluri, cum ar fi
           /proc/kallsyms, în loc să citească tabelul de simboluri din fișierul obiect dat  (opțiunea  implicită
           este „a.out”). Acest lucru este util pentru profilarea modulelor de nucleu.

       "-z"
       "--display-unused-functions"
           Dacă  dați  opțiunea -z, «gprof» va menționa toate funcțiile din profilul plan, chiar și pe cele care
           nu au fost apelate niciodată și care nu au avut timp petrecut în ele. Acest lucru este util  împreună
           cu opțiunea -c pentru a descoperi ce rutine nu au fost niciodată apelate.

   Opțiuni diverse
       "-d[num]"
       "--debug[=num]"
           Opțiunea  -d  număr  specifică  opțiunile  de  depanare.  Dacă  argumentul  număr nu este specificat,
           activează toate depanările.

       "-h"
       "--help"
           Opțiunea -h afișează utilizarea liniei de comandă.

       "-Oname"
       "--file-format=name"
           Selectează formatul fișierelor de date de profil. Formatele recunoscute sunt  auto  (implicit),  bsd,
           4.4bsd, magic și prof (încă nu este acceptat).

       "-s"
       "--sum"
           Opțiunea  -s  determină  «gprof»  să rezume informațiile din fișierele de date de profil pe care le-a
           citit și să scrie un fișier de date de profil numit gmon.sum, care  conține  toate  informațiile  din
           fișierele  de  date  de  profil  pe  care  «gprof» le-a citit. Fișierul gmon.sum poate fi unul dintre
           fișierele de intrare specificate; acest lucru are ca efect fuzionarea datelor din  celelalte  fișiere
           de intrare în gmon.sum.

           Eventual,  puteți  rula  din  nou  «gprof»  fără  -s  pentru a analiza datele cumulative din fișierul
           gmon.sum.

       "-v"
       "--version"
           Opțiunea -v face ca «gprof» să afișeze numărul versiunii curente și apoi să iasă.

   Opțiuni învechite
       Aceste opțiuni au fost înlocuite cu versiuni mai noi care utilizează argumentele „specificare-simbol”.

       "-e function_name"
           Opțiunea -e funcție îi indică lui «gprof» să nu afișeze informații despre  funcția  nume-funcție  (și
           copiii  săi...)  în  graficul  de  apeluri.  Funcția va fi în continuare listată ca fiind un copil al
           oricărei funcții care o apelează, dar numărul său de index va fi afișat ca [not printed]. Se  pot  da
           mai multe opțiuni -e; cu fiecare opțiune -e poate fi indicat doar un singur argument nume-funcție.

       "-E function_name"
           Opțiunea „-E funcție” funcționează la fel ca opțiunea „-e”, dar timpul petrecut în funcție (și copiii
           care  nu au fost apelați din altă parte) nu va fi utilizat pentru a calcula procentele de timp pentru
           graficul de apeluri. Se pot da mai multe opțiuni -E; cu fiecare opțiune -E poate fi indicat  doar  un
           singur argument nume-funcției.

       "-f function_name"
           Opțiunea  -f funcție face ca «gprof» să limiteze graficul de apeluri la funcția numele_funcției și la
           copiii acesteia (și la copiii acestora...). Se pot da mai multe opțiuni -f;  cu  fiecare  opțiune  -f
           poate fi indicat doar un singur argument nume-funcție.

       "-F function_name"
           Opțiunea  -F funcție funcționează la fel ca opțiunea „-f”, dar numai timpul petrecut în funcție și în
           copiii acesteia (și copiii acestora...) va fi utilizat pentru a determina timpul total și  procentele
           de  timp  pentru  graficul de apeluri. Se pot da mai multe opțiuni -F; cu fiecare opțiune -F se poate
           indica doar un singur argument nume-funcție. Opțiunea -F prevalează asupra opțiunii -E.

FIȘIERE

       "a.out"
           lista de nume și spațiul pentru text.

       "gmon.out"
           graficul și profilul dinamic al apelurilor.

       "gmon.sum"
           rezumatul graficului dinamic al apelurilor și al profilului.

ERORI

       Finețea eșantionării este prezentată, dar rămâne în cel mai bun  caz  statistică.  Presupunem  că  timpul
       pentru  fiecare  execuție  a  unei  funcții  poate  fi exprimat prin timpul total al funcției împărțit la
       numărul de apeluri ale funcției. Astfel, timpul propagat de-a  lungul  arcurilor  graficului  de  apelare
       către părinții funcției este direct proporțional cu numărul de ori de când este parcurs acel arc.

       Părinții  care  nu sunt ei înșiși profilați vor avea timpul copiilor lor profilați propagat către ei, dar
       vor apărea ca fiind invocați spontan în listarea graficului de apeluri și nu vor avea timpul lor propagat
       mai departe. În mod similar, cei care captează semnale,  chiar  dacă  sunt  profilați,  vor  părea  a  fi
       spontani  (deși din motive mai obscure). Orice copil profilat al captatorilor de semnal ar trebui să aibă
       timpii lor propagați în mod corespunzător, cu excepția cazului  în  care  captatorul  de  semnal  a  fost
       invocat în timpul execuției rutinei de profilare, caz în care totul este pierdut.

       Programul  profilat  trebuie  să  apeleze  „exit”(2)  sau să se întoarcă normal pentru ca informațiile de
       profilare să fie salvate în fișierul gmon.out.

CONSULTAȚI ȘI

       cc(1), prof(1) și intrarea Info pentru gprof.

       „An Execution Profiler for Modular Programs”, de S. Graham, P. Kessler, M. McKusick; Software -  Practice
       and Experience, Vol. 13, paginile 671-685, 1983.

       „gprof:  A  Call  Graph  Execution  Profiler”,  de S. Graham, P. Kessler, M. McKusick; Proceedings of the
       SIGPLAN '82 Symposium on Compiler Construction, SIGPLAN Notices, Vol. 17, No 6, paginile  120-126,  iunie
       1982.

DREPTURI DE AUTOR

       Drepturi de autor © 1988-2025 Free Software Foundation, Inc.

       Se  acordă  permisiunea  de a copia, distribui și/sau modifica acest document în conformitate cu termenii
       Licenței GNU Free Documentation, versiunea 1.3 sau orice versiune ulterioară publicată de  Free  Software
       Foundation;  fără  secțiuni  invariante, fără texte de copertă și fără texte de contra copertă. O copie a
       licenței este inclusă în secțiunea intitulată „GNU Free Documentation License”.

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

binutils-2.44                                     3 martie 2025                                         GPROF(1)