Wie erhält man die tatsächlichen Funktionsnamen von diesen Ausgaben?

8

Ich verwende Boost-Test für Unit-Tests und GCOV und LCOV für die Messung der Abdeckung.

Leider generiert genhtml solche Berichte für die Funktionsabdeckung:

Ich möchte jetzt wissen, was die Funktion _ZN7UtilLib11ProgressBarC2EjdRSo tatsächlich ist.

Bisher kann ich diese Funktion nicht mit der Klassenschnittstelle von ProgressBar korrelieren:

%Vor%

Kann mir irgendjemand helfen, entweder bessere Funktionsnamen mit gcov zu bekommen oder wie versteht man diese Funktionsnamen?

Die Anwendung wird mit gcc4.7 mit den folgenden Flags kompiliert: -g -g -save-temps=obj -Wall -Wextra -Wno-unused-parameter -Wno-error=unused-parameter -O0 -pedantic

    
tune2fs 15.02.2013, 09:37
quelle

2 Antworten

14

Dies sind verstümmelte C ++ - Symbole, verwenden Sie c++filt in einer Shell, um es zu entmutigen:

%Vor%

Auch wenn Sie genhtml zu verwenden scheinen, sollten Sie die Option --demangle-cpp ausprobieren, um das Entmagnetisieren automatisch für Sie durchzuführen.

Beachten Sie, dass der Compiler zwei Implementierungen für den von Ihnen geschriebenen ctor ausgibt. Durch die Verwendung von --demangle-cpp wird die Differenz verborgen, die nur im Namen des entstellten Symbols sichtbar ist. Um zu verstehen, was der Compiler macht, schauen Sie hier .

    
Daniel Frey 15.02.2013, 09:44
quelle
3

Verwenden Sie c++filt , wie folgt:

%Vor%

welche Ausgaben:

%Vor%     
Mats Petersson 15.02.2013 09:44
quelle

Tags und Links