Что на самом деле делают файлы pdb?

Хорошо, я понимаю, что файлы PDB являются файлами символов для сборок .NET. Но я никогда не изучал их расширенное использование.

Если я подключаюсь к удаленному отладчику из визуальной студии, в которой загружен работающий код, действительно ли мне нужны файлы PDB на удаленном компьютере?

Получу ли я информацию о необработанных исключениях без них на машине, где выполняется код без файлов PDB и отладчика с подключенным исходным кодом?

Что еще они делают?


person Matt    schedule 16.07.2010    source источник
comment
Классический ресурс находится на блог Джона Роббинса.   -  person Stephen Cleary    schedule 17.07.2010


Ответы (2)


Я не припомню навскидку, требуется ли PDB на удаленной машине в ситуации удаленной отладки, но среди прочего PDB содержат номер строки исходного кода для карты смещения скомпилированного кода. Вы не можете пройтись по исходному коду, используя только управляемую сборку.

Поскольку управляемые сборки сохраняют много имен текстовых символов из исходного исходного кода, вы можете копаться в управляемом исполняемом файле с помощью отладчика без PDB, но вы сможете увидеть только имена типов и общедоступные символы — вы не сможете см. имена для локальных символов, потому что они не нужны для привязки к сборке .NET или JIT IL для машинного кода во время выполнения.

Уведомления о необработанных исключениях не связаны с наличием PDB. Если отладчик подключен к процессу, удаленному или нет, отладчик получит первый взлом при исключении.

person dthorpe    schedule 16.07.2010

PDB не нужен на удаленной машине. Сам отладчик должен быть в состоянии найти его, а не часть удаленного агента.

person Rob Walker    schedule 19.07.2010