.\" -*- 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 5.01 (Pod::Simple 3.43) .\" .\" 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 .\" ======================================================================== .\" .IX Title "C++FILT 1" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH C++FILT 1 "7 mai 2024" binutils\-2.42.0 "Instrumente pentru dezvoltare(programare) GNU" .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH NUME c++filt \- decodifică simbolurile C++ și Java .SH SINOPSIS .IX Antet SINOPSIS c++filt [\fB\-_\fP|\fB\-\-strip\-underscore\fP] [\fB\-n\fP|\fB\-\-no\-strip\-underscore\fP] [\fB\-p\fP|\fB\-\-no\-params\fP] [\fB\-t\fP|\fB\-\-types\fP] [\fB\-i\fP|\fB\-\-no\-verbose\fP] [\fB\-r\fP|\fB\-\-no\-recurse\-limit\fP] [\fB\-R\fP|\fB\-\-recurse\-limit\fP] [\fB\-s\fP \fIformat\fP|\fB\-\-format=\fP\fIformat\fP] [\fB\-\-help\fP] [\fB\-\-version\fP] [\fIsimbol\fP...] .SH DESCRIERE .IX Antet DESCRIERE Limbajele C++ și Java oferă supraîncărcarea funcțiilor, ceea ce înseamnă că puteți scrie mai multe funcții cu același nume, cu condiția ca fiecare funcție să accepte parametri de tipuri diferite. Pentru a putea distinge aceste funcții cu nume similare, C++ și Java le codifică într\-un nume de asamblor de nivel inferior care identifică în mod unic fiecare versiune diferită. Acest proces este cunoscut sub numele de \fImangling\fP. Programul \&\fBc++filt\fP [1] realizează cartografierea inversă: decodifică (\fIdemangles\fP) numele de nivel scăzut în nume de nivel utilizator, astfel încât acestea să poată fi citite. .PP Fiecare cuvânt alfanumeric (format din litere, cifre, caractere de subliniere, dolari sau puncte) care apare în datele de intrare este un nume potențial modificat(codificat). În cazul în care numele se decodifică într\-un nume C++, numele C++ înlocuiește numele de nivel inferior în ieșire, în caz contrar, cuvântul original este afișat la ieșire. În acest fel, puteți trece un întreg fișier sursă de asamblare, care conține nume modificate, prin \fBc++filt\fP și să vedeți același fișier sursă care conține nume decodificate. .PP De asemenea, puteți utiliza \fBc++filt\fP pentru a descifra simboluri individuale, trecându\-le în linia de comandă: .PP .Vb 1 \& c++filt .Ve .PP Dacă nu sunt date argumente \fIsimbol\fP, \fBc++filt\fP citește în schimb numele simbolurilor de la intrarea standard. Toate rezultatele sunt afișate la ieșirea standard. Diferența dintre citirea numelor din linia de comandă și citirea numelor de la intrarea standard constă în faptul că se așteaptă ca argumentele din linia de comandă să fie doar nume modificate și nu se efectuează nicio verificare pentru a le separa de textul din jur. Astfel, de exemplu: .PP .Vb 1 \& c++filt \-n _Z1fv .Ve .PP va funcționa și va decodifica numele în "f()", în timp ce: .PP .Vb 1 \& c++filt \-n _Z1fv, .Ve .PP nu va funcționa; (observați virgula suplimentară de la sfârșitul numelui modificat, care îl face nevalid). Cu toate acestea, această comandă va funcționa: .PP .Vb 1 \& echo _Z1fv, | c++filt \-n .Ve .PP și va afișa „f(),”, adică numele decodificat urmat de o virgulă la sfârșit. Acest comportament se datorează faptului că, atunci când numele sunt citite de la intrarea standard, este de așteptat ca acestea să facă parte dintr\-un fișier sursă de asamblare în care ar putea exista caractere suplimentare, străine, care să urmeze după un nume modificat. De exemplu: .PP .Vb 1 \& .type _Z1fv, @funcție .Ve .SH OPȚIUNI .IX Antet OPȚIUNI .IP \fB\-_\fP 4 .IX Element \-_ .PD 0 .IP \fB\-\-strip\-underscore\fP 4 .IX Element \-\-strip\-underscore .PD Pe unele sisteme, atât compilatoarele C, cât și cele C++ pun o subliniere în fața fiecărui nume. De exemplu, numele C \f(CW„foo”\fP primește numele de nivel inferior \f(CW„_foo”\fP. Această opțiune elimină sublinierea inițială. Faptul că \&\fBc++filt\fP elimină implicit sublinierea depinde de țintă. .IP \fB\-n\fP 4 .IX Element \-n .PD 0 .IP \fB\-\-no\-strip\-underscore\fP 4 .IX Element \-\-no\-strip\-underscore .PD Nu elimină liniuța de subliniere inițială. .IP \fB\-p\fP 4 .IX Element \-p .PD 0 .IP \fB\-\-no\-params\fP 4 .IX Element \-\-no\-params .PD Atunci când se decodifică numele unei funcții, nu se afișează tipurile de parametri ai funcției. .IP \fB\-t\fP 4 .IX Element \-t .PD 0 .IP \fB\-\-types\fP 4 .IX Element \-\-types .PD Încearcă să decodifice tipurile, precum și numele funcțiilor. Acest lucru este dezactivat în mod implicit, deoarece tipurile de tip „mangled” (codificate) sunt utilizate în mod normal numai la nivel intern în compilator și pot fi confundate cu nume care nu sunt „mangled”. De exemplu, o funcție numită „a”, tratată ca un nume de tip „mangled”, ar fi „signed char” (caracter cu semn). .IP \fB\-i\fP 4 .IX Element \-i .PD 0 .IP \fB\-\-no\-verbose\fP 4 .IX Element \-\-no\-verbose .PD Nu include detalii de implementare (dacă există) în rezultatul decodificat. .IP \fB\-r\fP 4 .IX Element \-r .PD 0 .IP \fB\-R\fP 4 .IX Element \-R .IP \fB\-\-recurse\-limit\fP 4 .IX Element \-\-recurse\-limit .IP \fB\-\-no\-recurse\-limit\fP 4 .IX Element \-\-no\-recurse\-limit .IP \fB\-\-recursion\-limit\fP 4 .IX Element \-\-recursion\-limit .IP \fB\-\-no\-recursion\-limit\fP 4 .IX Element \-\-no\-recursion\-limit .PD Activează sau dezactivează limitarea numărului de recursivități efectuate în timpul decodificării șirurilor de caractere. Deoarece formatele de manipulare a numelor permit un nivel infinit de recursivitate, este posibil să se creeze șiruri a căror decodificare va epuiza spațiul de stivă disponibil pe calculatorul gazdă, declanșând o eroare de memorie. Limitarea încearcă să prevină acest lucru prin restricționarea recursivității la 2048 de niveluri de imbricare. .Sp În mod implicit, această limită este activată, dar poate fi necesar să fie dezactivată pentru a dezmembra nume cu adevărat complicate. Rețineți totuși că, dacă limita de recursivitate este dezactivată, este posibilă epuizarea stivei și orice raport de eroare privind un astfel de eveniment va fi respins. .Sp Opțiunea \fB\-r\fP este un sinonim pentru opțiunea \&\fB\-\-no\-recurse\-limit\fP. Opțiunea \fB\-R\fP este sinonimă cu opțiunea \fB\-\-recurse\-limit\fP. .IP "\fB\-s\fP \fIformat\fP" 4 .IX Element "\-s format" .PD 0 .IP \fB\-\-format=\fP\fIformat\fP 4 .IX Element \-\-format=format .PD \&\fBc++filt\fP poate decodifica diferite metode de mangling (codificare), utilizate de diferite compilatoare. Argumentul acestei opțiuni selectează metoda pe care o utilizează: .RS 4 .ie n .IP """auto""" 4 .el .IP \f(CWauto\fR 4 .IX Element auto Selecție automată bazată pe executabil (metoda implicită) .ie n .IP """gnu""" 4 .el .IP \f(CWgnu\fR 4 .IX Element gnu cea utilizată de compilatorul GNU C++ (g++) .ie n .IP """lucid""" 4 .el .IP \f(CWlucid\fR 4 .IX Element lucid cea utilizată de compilatorul Lucid (lcc) .ie n .IP """arm""" 4 .el .IP \f(CWarm\fR 4 .IX Element arm cea specificată de „C++ Annotated Reference Manual” (Manualul de referință adnotat C++) .ie n .IP """hp""" 4 .el .IP \f(CWhp\fR 4 .IX Element hp cea utilizată de compilatorul HP (aCC) .ie n .IP """edg""" 4 .el .IP \f(CWedg\fR 4 .IX Element edg cea utilizată de compilatorul EDG .ie n .IP """gnu\-v3""" 4 .el .IP \f(CWgnu\-v3\fR 4 .IX Element gnu\-v3 cea utilizată de compilatorul GNU C++ (g++) cu ABI V3. .ie n .IP """java""" 4 .el .IP \f(CWjava\fR 4 .IX Element java cea utilizată de compilatorul GNU Java (gcj) .ie n .IP """gnat""" 4 .el .IP \f(CWgnat\fR 4 .IX Element gnat cea utilizată de compilatorul GNU Ada (GNAT). .RE .RS 4 .RE .IP \fB\-\-help\fP 4 .IX Element \-\-help Afișează un rezumat al opțiunilor lui \fBc++filt\fP și iese. .IP \fB\-\-version\fP 4 .IX Element \-\-version Afișează numărul de versiune al lui \fBc++filt\fP și iese. .IP \fB@\fP\fIfișier\fP 4 .IX Element @fişier Citește opțiunile liniei de comandă din \fIfișier\fP. Opțiunile citite sunt inserate în locul opțiunii originale @\fIfișier\fP. Dacă \fIfișier\fP nu există sau nu poate fi citit, atunci opțiunea va fi tratată literal și nu va fi eliminată. .Sp Opțiunile din \fIfișier\fP sunt separate prin spații albe. Un caracter de spațiere poate fi inclus într\-o opțiune prin includerea întregii opțiuni între ghilimele simple sau duble. Orice caracter (inclusiv o bară oblică inversă) poate fi inclus prin prefixarea caracterului care urmează să fie inclus cu o bară oblică inversă. \fIfișier\fP poate conține la rândul său opțiuni @\fIfișier\fP suplimentare; orice astfel de opțiuni vor fi procesate în mod recursiv. .SH "NOTE DE SUBSOL" .IX Antet "NOTE DE SUBSOL" .IP 1. 4 MS\-DOS nu permite caracterele \f(CW„+”\fP în numele fișierelor, așa că pe MS\-DOS acest program se numește \fBCXXFILT\fP. .SH "CONSULTAȚI ȘI" .IX Antet "CONSULTAȚI ȘI" intrările Info pentru \fIbinutils\fP. .SH "DREPTURI DE AUTOR" .IX Antet "DREPTURI DE AUTOR" Drepturi de autor © 1991\-2024 Free Software Foundation, Inc. .PP 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”. .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .