View Compiler Mangled Namen in C ++

7

Wie kann ich die vom Compiler generierten veralteten Namen für überladene Funktionen in C ++ anzeigen? Ich benutze VC9 aber Antworten für andere Compiler sind auch willkommen.

Bearbeiten: Ich finde alle Antworten hier hilfreich. Ich akzeptiere den, der mir am besten gefallen hat.

    
Agnel Kurian 16.04.2009, 05:38
quelle

6 Antworten

5

Sie könnten in der Map-Datei suchen. Angenommen, Sie haben die Generierung von Map-Dateien aktiviert.

    
Simeon Pilgrim 16.04.2009, 05:55
quelle
8

Sie können die dekorierten Funktionsnamen mit Dependency Walker sehen.

Öffnen Sie eine beliebige DLL \ EXE im Abhängigkeits-Walker, und im rechten Bereich sehen Sie eine Liste der dekorierten Funktionsnamen.

    
aJ. 16.04.2009 06:00
quelle
6

Da fragst du auch nach anderen Compilern. Es gibt ein Tool namens nm auf der Gnu Toolchain. Du wirst es auf Linux und Cygwin bekommen, und ich glaube, dass es auch in mingw verfügbar ist. Wenn Sie ihn ohne Parameter aufrufen, werden die verfälschten Symbole in der Binärdatei angezeigt. Wenn man es mit --demangle anruft, macht man das Offensichtliche.

    
quelle
5

Sie können dekorierte Namen mit Dumpbin .     

JP Alioto 16.04.2009 05:44
quelle
3

Während alle oben genannten Arbeiten, gibt es eine schön dokumentiert Weg um die dafür verstümmelten Namen durch die Verwendung von Auflisten von Dateien : Projekt Property Pages - & gt; C / C ++ - & gt; Ausgabedateien - & gt; Assembler-Ausgabe.

(BEARBEITEN :)

Es gibt einen Grund nur Auflisten von Dateien und DUMPBIN dokumentiert werden als Möglichkeiten, dekorierte Namen zu sehen. Sowohl die Map-Datei und Dependency Walker, vorgeschlagen als Lösungen, Anzeige nur ergänzte Namen. Wenn Sie mehrere Überladungen eines Funktionsnamens haben, fällt es Ihnen schwer, sie mit den verschiedenen dekorierten Namen zu vergleichen, die Sie sehen würden. (Das ist mehr oder weniger Rekonstruktion der Dekoration Schema. Während möglich , besiegt er den ganzen ursprünglichen Zweck.)

    
Ofek Shilon 08.05.2009 19:49
quelle
0

linux gnu Werkzeugkette nm Befehl kann verwendet werden, um den Namen zu sehen.

%Vor% %Vor%     
user2761565 03.11.2015 10:11
quelle