Domanda

Come faccio a visualizzare generato dal compilatore nomi alterati per l'overload di funzioni in C++?Sto usando VC9 ma le risposte per altri compilatori sono i benvenuti.

Edit: Trovo tutte le risposte utili qui.Accettare quello che mi piaceva di più.

È stato utile?

Soluzione

Si potrebbe guardare nel file di mappa. Supponendo di avere la mappa di generazione di file acceso.

Altri suggerimenti

È possibile visualizzare i nomi delle funzioni decorate utilizzando Dependency Walker .

Aprire qualsiasi DLL \ EXE in Dependency Walker e nel riquadro di destra è possibile visualizzare un elenco dei nomi delle funzioni decorati.

Dal momento che si chiede anche di altri compilatori. C'è uno strumento chiamato nm sulla toolchain GNU. Otterrete su Linux e Cygwin, e credo che sia disponibile in mingw anche. Chiamarlo senza parametri mostrerà i simboli straziati nel binario. Chiamarlo con --demangle farà l'ovvio.

È possibile visualizzare decorato nomi storpiati () con Dumpbin .

Mentre tutte le opere sopra, c'è un ben documentato modo per visualizzare i nomi alterati dall'uso di L'Elenco Dei File:Pagine Delle Proprietà Del Progetto -> C/C++ -> File Di Output -> Assembler Uscita.

(EDIT:)

Un motivo c'è solo l'Elenco dei file e DUMPBIN sono documentati come modi di vedere nomi decorati.Sia il file della mappa e dependency walker, ha suggerito soluzioni, display solo decorate i nomi.Se si dispone di più sovraccarichi di un nome di funzione, avrai un momento difficile corrispondenti ai vari nomi decorati si vedrà.(Che è più o meno ricostruire l'arredamento e lo stile.Mentre possibile, sconfigge l'intero scopo originale.)

comando linux gnu catena utensile nm può essere utilizzato per visualizzare nome alterato.

#include<iostream> 
using namespace std;

int fun1(){}
int fun1(int){}
int main()
{
return 0;
}
#g++ name_decoration_2.cpp
#nm a.out
...
...
000000000040064e T _Z4fun1i
0000000000400648 T _Z4fun1v
U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top