Plik pdb zawiera informacje, których potrzebuje debugger, aby poprawnie odczytać stos. Twoje ślady stosu będą zawierały numery linii i nazwy symboli ramek stosów wewnątrz modułów, dla których masz pdb.
Podam dwa przykłady użycia. Pierwsza to oczywista odpowiedź. Drugi wyjaśnia pdb zindeksowane źródłami.
1-te przykład użycia ...
zależności nazywając konwencję i który optymalizacje kompilatora używany, może nie być możliwe dla debugera ręcznie odprężyć stosu poprzez moduł, dla którego nie mają PDB. Może się to zdarzyć w przypadku niektórych bibliotek stron trzecich, a nawet niektórych części systemu operacyjnego.
Rozważ scenariusz, w którym wystąpi naruszenie dostępu w systemie operacyjnym Windows. Śledzenie stosu nie rozwija się we własnej aplikacji, ponieważ ten składnik systemu operacyjnego wykorzystuje specjalną konwencję wywołującą dezorientację w debugerze. Jeśli skonfigurujesz ścieżkę symbolu, aby pobrać publiczne pdb OS, istnieje duża szansa, że ślad stosu rozwinie się w twojej aplikacji. To pozwala zobaczyć dokładnie, jakie argumenty twój własny kod przeszedł do wywołania systemowego OS. (I podobnym przykładem AV wewnątrz 3rd biblioteki partii lub nawet wewnątrz własnego kodu)
2-te Przykład użycia ...
Pdb mają inny bardzo przydatne właściwości - można je zintegrować z niektórych systemach kontroli źródła przy użyciu funkcja, którą program microsoft nazywa "indeksowaniem źródeł". Plik pdb z indeksem źródłowym zawiera polecenia sterujące źródłami, które określają sposób pobierania z kontrolki źródłowej dokładnych wersji plików użytych do zbudowania komponentu. Debugerzy Microsoftu wiedzą, jak wykonać polecenia, aby automatycznie pobrać pliki podczas sesji debugowania. Jest to potężna funkcja, która oszczędza generatora debugowania przed ręczną synchronizacją drzewa źródłowego z poprawną etykietą dla danej kompilacji. Jest to szczególnie przydatne do zdalnych sesji debugowania i do analizy wypadków powypadkowych.
Instalacja "narzędzia do debugowania dla systemu Windows" (windbg) zawiera dokument o nazwie srcsrv.doc, który stanowi przykład demonstrujący, jak używać srctool.exe do określania, które pliki źródłowe są indeksowane źródłowo w danym pdb.
Aby odpowiedzieć na pytanie "skąd mam wiedzieć", funkcja "moduły" w debugerze może powiedzieć, które moduły mają odpowiedni pdb. W windbg użyj polecenia "lml". W visual studio wybierz moduły z dowolnego miejsca w menu debugowania.(przykro mi, nie mam aktualnej wersji podręcznego studia) pod ręką)