Udostępnij przez


Symbole i pliki symboli

Gdy aplikacje, biblioteki, sterowniki lub systemy operacyjne są połączone, konsolidator tworzący pliki .exe i .dll tworzy również wiele dodatkowych plików nazywanych plikami symboli.

Pliki symboli przechowują różne dane, które nie są rzeczywiście potrzebne podczas uruchamiania plików binarnych, ale które mogą być bardzo przydatne w procesie debugowania.

Zazwyczaj pliki symboli mogą zawierać następujące elementy:

  • Zmienne globalne

  • Zmienne lokalne

  • Nazwy funkcji i adresy punktów wejścia

  • Rekordy pominięcia wskaźnika ramki (FPO)

  • Numery wierszy źródłowych

Każdy z tych elementów jest nazywany indywidualnie symbolem. Na przykład pojedynczy plik symboli Myprogram.pdb może zawierać kilkaset symboli, w tym zmienne globalne i nazwy funkcji oraz setki zmiennych lokalnych. Często firmy programowe udostępniają dwie wersje każdego pliku symboli: pełny plik symboli zawierający zarówno symbole publiczne , jak i symbole prywatne, oraz zredukowany (pozbawiony) plik zawierający tylko symbole publiczne. Aby uzyskać szczegółowe informacje, zobacz Publiczne i prywatne symbole.

Podczas debugowania należy się upewnić, że debuger może uzyskać dostęp do plików symboli skojarzonych z obiektem docelowym, który debugujesz. Zarówno debugowanie na żywo, jak i debugowanie plików zrzutu awaryjnego wymagają symboli. Należy uzyskać odpowiednie symbole dla kodu, który chcesz debugować, i załadować te symbole do debugera.

Symbole systemu Windows

System Windows przechowuje symbole w plikach z rozszerzeniem .pdb.

Kompilator i linker kontrolują format symbolu. Linker Visual C++ umieszcza wszystkie symbole w plikach .pdb.

System operacyjny Windows został opracowany w dwóch wersjach. Bezpłatna kompilacja (lub kompilacja detaliczna) ma stosunkowo małe pliki binarne, a sprawdzona kompilacja (lub kompilacja debugowania) ma większe pliki binarne z większą większa ilością symboli debugowania w samym kodzie. Sprawdzone kompilacje były dostępne w starszych wersjach systemu Windows przed windows 10 w wersji 1803. Każda z tych kompilacji miała własne pliki symboli. Podczas debugowania obiektu docelowego w systemie Windows należy użyć plików symboli pasujących do kompilacji systemu Windows w obiekcie docelowym.

W poniższej tabeli wymieniono kilka katalogów, które istnieją w standardowym drzewie symboli systemu Windows:

Katalog Zawiera pliki symboli dla

ACM

Pliki menedżera kompresji audio firmy Microsoft

COM

Pliki wykonywalne (.com)

CPL

Programy Panelu sterowania

DLL

Pliki bibliotek linku dynamicznego (.dll)

Odzyskiwanie po awarii

Pliki sterowników (.drv)

EXE

Pliki wykonywalne (.exe)

SCR

Pliki wygaszacza ekranu

SYSTEM

Pliki sterowników (.sys)