c++filt(1): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
== C++FILT(1) - GNU Utvecklingsverktyg ==
== c++filt(1) — Linux manual sida ==


=== NAMN ===
=== NAMN ===
'''c++filt''' - avmangla C++ och Java-symboler
 
c++filt - avkodar (demanglar) C++- och Java-symboler


=== SYNOPSIS ===
=== SYNOPSIS ===
c++filt [-_ | --strip-underscore]
 
        [-n | --no-strip-underscore]
<pre>
        [-p | --no-params]
c++filt [-_ | --strip-underscore]
        [-t | --types]
        [-n | --no-strip-underscore]
        [-i | --no-verbose]
        [-p | --no-params]
        [-r | --no-recurse-limit]
        [-t | --types]
        [-R | --recurse-limit]
        [-i | --no-verbose]
        [-s <format> | --format=<format>]
        [-r | --no-recurse-limit]
        [--help]  [--version]  [<symbol>...]
        [-R | --recurse-limit]
        [-s format | --format=format]
        [--help]  [--version]  [symbol ...]
</pre>


=== BESKRIVNING ===
=== BESKRIVNING ===
C++ och Java tillåter funktionsöverlagring, vilket innebär att du kan ha flera funktioner med samma namn, så länge som parametrarna skiljer sig åt i typ. För att kunna skilja mellan dessa funktioner kodas de till ett lågnivånamn som unikt identifierar varje variant. Denna process kallas ''mangling''. Programmet '''c++filt''' utför den omvända processen och avkodar (''demangler'') namnen tillbaka till användarvänliga format.


Alla alfanumeriska ord i indata som består av bokstäver, siffror, understreck, dollartecken eller punkter behandlas som potentiella manglade namn. Om namnet är ett giltigt C++-namn ersätts det med den demanglade versionen i utdata.
Programmen C++ och Java stöder funktionsöverlagring, vilket innebär att flera funktioner kan ha samma namn men olika parameterlistor. För att skilja dessa funktioner åt kodas deras namn till unika assemblernamn genom en process som kallas ''mangling''. '''c++filt''' gör motsatsen: den avkodar (''demanglar'') de lågnivåkodade namnen till användarvänliga namn.
 
Varje ord som består av bokstäver, siffror, understreck, dollartecken eller punkter identifieras som ett potentiellt manglat namn. Om det kan avkodas till ett C++-namn ersätts det, annars skrivs det ut oförändrat. Detta gör att hela assemblerkällfiler kan skickas genom '''c++filt''' för att ersätta de manglede namnen med läsbara namn.


Om inga symbolargument anges, läser '''c++filt''' symbolnamn från standardindata och skriver ut demanglade namn till standardutdata.
Man kan även mata in enstaka symboler:


Exempel:
<pre>
c++filt _Z1fv
c++filt &lt;symbol&gt;
</pre>


== NAMN ==
Om inga symboler anges på kommandoraden, läses symboler från standardinmatningen och resultaten skrivs ut på standardutmatningen.
c++filt - avkodar C++ och Java-symboler


== SYNOPSIS ==
=== ALTERNATIV ===
c++filt [-_ | --strip-underscore]  [-n | --no-strip-underscore]  [-p | --no-params]  [-t | --types]  [-i | --no-verbose]  [-r | --no-recurse-limit]  [-R | --recurse-limit]  [-s format | --format=format]  [--help]  [--version]  [symbol...]


== BESKRIVNING ==
==== -_ / --strip-underscore ====
C++ och Java tillåter överlagring av funktioner, vilket innebär att du kan ha många funktioner med samma namn så länge de har olika parameterlistor. För att särskilja dessa funktioner kodas de till ett lågnivån namn som unikt identifierar varje version. Denna process kallas för *mangling*. Programmet c++filt gör det omvända, det vill säga avkodar (*demanglar*) lågnivånamn till användarnamn så att de blir läsbara.


Varje alfanumeriskt ord (bestående av bokstäver, siffror, understreck, dollartecken eller punkter) i inmatningen är en potentiell manglad sträng. Om strängen kan avkodas till ett C++-namn, ersätts lågnivånnamnet i utmatningen, annars skrivs det ursprungliga ordet ut. Du kan använda c++filt för att bearbeta hela assemblerkällfiler och se de demanglade namnen i stället.
Tar bort inledande understreck från namn (gäller för vissa system).


Du kan också använda c++filt för att avkoda enskilda symboler genom att skicka dem som argument på kommandoraden:
==== -n / --no-strip-underscore ====


    c++filt <symbol>
Tar inte bort inledande understreck.


Om inga symbolargument anges, läser c++filt symbolnamn från standardinmatningen. Resultaten skrivs till standardutmatningen.
==== -p / --no-params ====


== ALTERNATIV ==
Vid avkodning av funktionsnamn, visa inte parametrarnas typer.
*--strip-underscore
Tar bort initiala understreck som vissa kompilatorer lägger till framför namn, t.ex. ändras "_foo" till "foo".


*--no-strip-underscore*_
==== -t / --types ====
Tar inte bort det initiala understrecket.


*--no-params*_
Avkodar även datatyper, inte bara funktionsnamn.
Vid demangling av ett funktionsnamn, visa inte parametrarnas typer.


*--types*_
==== -i / --no-verbose ====
Försök att avkoda typer samt funktionsnamn.


*--no-verbose*_
Exkludera implementationsdetaljer i avkodningen.
Inkludera inte implementeringsdetaljer i utmatningen.


*--recurse-limit*_
==== -r / -R / --recurse-limit / --no-recurse-limit ====
Aktiverar en gräns för rekursion för att undvika stacköverflöden.


*--format=format*_
Aktiverar eller inaktiverar en gräns för rekursion vid avkodning. Standardgränsen är 2048 nivåer.
Välj format för avkodning, till exempel "gnu", "java", eller "arm".


*--help*_
==== -s format / --format=format ====
Visa en sammanfattning av alternativen.


*--version*_
Väljer kodningsformat:
Visa versionsnummer.
* ''gnu'' - GNU C++ (standard)
* ''lucid'' - Lucid-kompilatorn
* ''arm'' - C++ Annotated Reference Manual
* ''hp'' - HP:s kompilator
* ''edg'' - EDG-kompilatorn
* ''gnu-v3'' - GNU C++ V3 ABI
* ''java'' - GNU Java (gcj)
* ''gnat'' - GNU Ada (GNAT)


== SE ÄVEN ==
==== --help ====
Info-sidor för binutils.


== COPYRIGHT ==
Skriver ut en sammanfattning av alternativen och avslutar.
Copyright (c) 1991-2024 Free Software Foundation, Inc.


Denna manual får kopieras och distribueras under villkoren i GNU Free Documentation License version 1.3 eller senare.
==== --version ====


== COLOPHON ==
Skriver ut versionsinformationen och avslutar.
Denna sida är en del av binutils-projektet (ett verktygspaket för att arbeta med körbara binärfiler). Mer information finns på http://www.gnu.org/software/binutils/.


=== FOTNOTER ===
=== SE OCKSÅ ===
1. MS-DOS tillåter inte "+" i filnamn, så på MS-DOS heter programmet '''CXXFILT'''.


=== SE ÄVEN ===
* [[binutils]]
* Info-dokumentationen för ''binutils''.


=== COPYRIGHT ===
=== COPYRIGHT ===
Copyright (c) 1991-2024 Free Software Foundation, Inc.
 
Copyright (c) 1991-2025 Free Software Foundation, Inc.


Denna dokumentation får kopieras, distribueras och/eller modifieras under villkoren i GNU Free Documentation License, version 1.3 eller senare.
Denna dokumentation får kopieras, distribueras och/eller modifieras under villkoren i GNU Free Documentation License, version 1.3 eller senare.


=== COLOPHON ===
 
Denna sida är en del av ''binutils''-projektet, en samling verktyg för hantering av exekverbara binärer. För mer information, besök [http://www.gnu.org/software/binutils/ http://www.gnu.org/software/binutils/].
 


= Sidslut =
= Sidslut =

Nuvarande version från 18 februari 2025 kl. 18.34

c++filt(1) — Linux manual sida

NAMN

c++filt - avkodar (demanglar) C++- och Java-symboler

SYNOPSIS

c++filt [-_ | --strip-underscore]
        [-n | --no-strip-underscore]
        [-p | --no-params]
        [-t | --types]
        [-i | --no-verbose]
        [-r | --no-recurse-limit]
        [-R | --recurse-limit]
        [-s format | --format=format]
        [--help]  [--version]  [symbol ...]

BESKRIVNING

Programmen C++ och Java stöder funktionsöverlagring, vilket innebär att flera funktioner kan ha samma namn men olika parameterlistor. För att skilja dessa funktioner åt kodas deras namn till unika assemblernamn genom en process som kallas mangling. c++filt gör motsatsen: den avkodar (demanglar) de lågnivåkodade namnen till användarvänliga namn.

Varje ord som består av bokstäver, siffror, understreck, dollartecken eller punkter identifieras som ett potentiellt manglat namn. Om det kan avkodas till ett C++-namn ersätts det, annars skrivs det ut oförändrat. Detta gör att hela assemblerkällfiler kan skickas genom c++filt för att ersätta de manglede namnen med läsbara namn.

Man kan även mata in enstaka symboler:

c++filt <symbol>

Om inga symboler anges på kommandoraden, läses symboler från standardinmatningen och resultaten skrivs ut på standardutmatningen.

ALTERNATIV

-_ / --strip-underscore

Tar bort inledande understreck från namn (gäller för vissa system).

-n / --no-strip-underscore

Tar inte bort inledande understreck.

-p / --no-params

Vid avkodning av funktionsnamn, visa inte parametrarnas typer.

-t / --types

Avkodar även datatyper, inte bara funktionsnamn.

-i / --no-verbose

Exkludera implementationsdetaljer i avkodningen.

-r / -R / --recurse-limit / --no-recurse-limit

Aktiverar eller inaktiverar en gräns för rekursion vid avkodning. Standardgränsen är 2048 nivåer.

-s format / --format=format

Väljer kodningsformat:

  • gnu - GNU C++ (standard)
  • lucid - Lucid-kompilatorn
  • arm - C++ Annotated Reference Manual
  • hp - HP:s kompilator
  • edg - EDG-kompilatorn
  • gnu-v3 - GNU C++ V3 ABI
  • java - GNU Java (gcj)
  • gnat - GNU Ada (GNAT)

--help

Skriver ut en sammanfattning av alternativen och avslutar.

--version

Skriver ut versionsinformationen och avslutar.

SE OCKSÅ

COPYRIGHT

Copyright (c) 1991-2025 Free Software Foundation, Inc.

Denna dokumentation får kopieras, distribueras och/eller modifieras under villkoren i GNU Free Documentation License, version 1.3 eller senare.



Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man1/c++filt.1.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.