Pdb содержит информацию, необходимую отладчику для правильного чтения стека. Ваши трассировки стека будут содержать номера строк и имена символов стековых фреймов внутри модулей, для которых у вас есть pdb.
Я приведу два примера использования. Первый - очевидный ответ. Вторая объясняет индексированные источником pdb.
1-й пример использования ...
В зависимости от соглашения о вызовах и от того, какие оптимизации использует компилятор, отладчик может не иметь возможности вручную разматывать стек через модуль, для которого у вас нет pdb. Это может случиться с некоторыми сторонними библиотеками и даже с некоторыми частями ОС.
Рассмотрим сценарий, в котором вы сталкиваетесь с нарушением доступа внутри ОС Windows. Трассировка стека не раскручивается в ваше собственное приложение, потому что этот компонент ОС использует специальное соглашение о вызовах, которое сбивает с толку отладчик. Если вы сконфигурируете свой путь символов для загрузки публичных pdb ОС, то есть большая вероятность, что трассировка стека развернется в вашем приложении. Это позволяет вам точно увидеть, какие аргументы ваш собственный код передал в системный вызов ОС. (и аналогичный пример для AV внутри сторонней библиотеки или даже внутри вашего собственного кода)
2-й пример использования ...
У Pdb есть еще одно очень полезное свойство - они могут интегрироваться с некоторыми системами контроля версий, используя функцию, которую Microsoft называет «индексация исходного кода». PDB с индексом источника содержит команды управления исходным кодом, которые определяют, как извлечь из управления исходным кодом точные версии файлов, которые использовались для построения компонента. Отладчики Microsoft понимают, как выполнять команды для автоматической загрузки файлов во время сеанса отладки. Это мощная функция, которая избавляет отладчика от необходимости вручную синхронизировать исходное дерево с правильной меткой для данной сборки. Это особенно полезно для сеансов удаленной отладки и для анализа аварийных дампов после смерти.
Установка «Средства отладки для Windows» (windbg) содержит документ с именем srcsrv.doc, в котором приведен пример, демонстрирующий, как использовать srctool.exe для определения того, какие исходные файлы индексируются в исходном формате в заданной pdb.
Чтобы ответить на ваш вопрос «откуда я знаю», функция «модули» в отладчике может сказать вам, какие модули имеют соответствующий pdb. В windbg используйте команду "lml". В visual studio выберите модули из меню отладки. (извините, у меня нет под рукой текущей версии visual studio)