2011-06-15 9 views
5

Mam pewne problemy z dużym plikiem biblioteki statycznej (.lib) i podejrzewam, że nadpisywanie kodu z bezkrytycznego używania klas szablonów. Chcę przeanalizować symbole w bibliotece, aby potwierdzić, które stanowią największą część rozmiaru pliku.Narzędzie do analizy symboli w pliku biblioteki

Kiedy łączę mój plik wykonywalny z tą biblioteką, wynikowy wynik jest znacznie bardziej sensowny, pod względem rozmiaru (około 20 MB), więc linker jest oczywiście pozbawiony wielu zbędnych symboli. Chcę dowiedzieć się, co to jest usuwanie ..

Wiem, że mogę używać dumpbin do generowania symboli i nagłówków, ale z tą biblioteką, która jest dość duża (900 MB), ten zrzut jest prawie bezużyteczny bez narzędzia do analizowania i raportowania.

Oczywiście mogłem napisać to sam, ale zastanawiałem się, czy ktoś może polecić jakieś darmowe oprogramowanie już dostępne?

Odpowiedz

1

znalazłem jeden (SymbolSort), który działa bardzo dobrze, daje mi dokładnie to, czego potrzebuję:

1

Czy to Twoja własna biblioteka? Jeśli tak, możesz generate a link map, który opisuje układ kodu w bibliotece, który dałby ci potrzebne informacje w bardziej przyjaznej formie.

Jeśli nie masz dostępu do kodu źródłowego, aby to zrobić, możesz użyć Perla lub innych narzędzi skryptowych open-source do złamania wyjścia dumpbin.

EDYCJA: możesz również dać LibDump spin, można go pobrać z here. Nie użyłem tego sam.

+0

wola Pokaż wszystkie symbole, które są pozbawione przez łącznik? – StevieG

+0

Nie jestem pewna, co przez to rozumiesz. Pokaże ci, gdzie zaczyna się każda funkcja i jaka jest duża - czy to nie jest to, czego chcesz? –

+0

Jak rozumiem, w pliku .lib znajduje się o wiele więcej symboli niż będzie faktycznie używanych przez plik wykonywalny, ponieważ linker usuwa wszystkie nieużywane symbole (chyba że się mylę?). Muszę zobaczyć wszystkie symbole w pliku .lib, a nie tylko te używane przez plik wykonywalny - zastanawiam się tylko, czy budowanie mapy łącza w czasie łącza da mi to, czy tylko mapę tego, co jest używane przez wynikowy plik .exe – StevieG

Powiązane problemy