Funktion zum Mangeln / Abmindern von Funktionen

7

Ich habe zuvor hier gezeigt, dass C ++ - Funktionen nicht einfach sind in der Versammlung vertreten. Jetzt bin ich daran interessiert, auf die eine oder andere Weise zu lesen, da callgrind, ein Teil von valgrind, entmagnetisiert angezeigt wird, während sie in der Assembly mangled dargestellt werden, also möchte ich entweder die Valgrind-Funktionsausgabe verkleinern oder die Assemblynamen von Funktionen abmildern. Hat schon mal jemand so etwas probiert? Ich schaute auf eine Website und fand folgendes heraus:

%Vor%

Hat jemand schon einmal so etwas probiert, möchte ich in C abmildern? Mein Compiler ist gcc 4.x

    
Syntax_Error 08.02.2011, 23:16
quelle

2 Antworten

13

Verwenden Sie das Befehlszeilenprogramm c++filt , um den Namen zu minimieren.

    
Eugen Constantin Dinca 08.02.2011, 23:21
quelle
11

Hier ist meine C ++ 11 Implementierung, abgeleitet von der folgenden Seite: Ссылка

%Vor%

Um die Speicherverwaltung für das zurückgegebene (char *) zu vereinfachen, verwende ich eine std :: shared_ptr mit einer benutzerdefinierten lambda 'deleter' Funktion, die free () für den zurückgegebenen Speicher aufruft. Aus diesem Grund muss ich mich nicht darum kümmern, den Speicher selbst zu löschen, ich benutze ihn nur bei Bedarf, und wenn der shared_ptr den Gültigkeitsbereich verlässt, wird der Speicher frei sein.

Hier ist das Makro, das ich verwende, um auf den Namen des entfremdeten Typs als (const char *) zuzugreifen. Beachten Sie, dass RTTI aktiviert sein muss, um auf 'typeid' zugreifen zu können.

%Vor%

Also kann ich aus einer C ++ Klasse sagen:

%Vor%     
Dave 07.08.2014 00:13
quelle