Отладка с помощью файла Pdb и файла исходного кода в Visual Studio
У меня есть веб-проект, который отправляет из кода на стороне клиента в метод во внешней DLL, который у меня есть файл исходного кода и файл pdb этой внешней библиотеки DLL. Что я хотел бы сделать, это отладить внешнюю DLL, используя файл исходного кода и pdb. Visual Studio не останавливается, чтобы сказать, что символы не загружены для модуля с тех пор.
1 ответ
Для отладки DLL всегда необходим файл символов с той же версией. Когда вы отлаживаете свои собственные приложения, вам обычно не нужно заботиться об этом.
Но на заднем плане происходят вещи. Visual Stuido всегда помещает файлы символов в папку отладки при сборке приложения, а также загружает их, как описано в разделе Loading the symbols automatic
,
(Когда вы распространяете свое приложение, вы обычно не хотите распространять эти символы, и поэтому они не будут скопированы в каталог выпуска, вы меняете конфигурацию сборки на выпуск.)
Загрузка символов manuell
Если вы хотите загрузить символы вручную, вы можете загрузить их с помощью Modules
Диалог.
"Debug" -> "Windows" -> "Modules"
,
Вы можете щелкнуть правой кнопкой мыши по строке, и есть опция "Загрузить символы", которая позволяет вам указать файл pdb для загрузки.
Загрузка символов автоматическая
Visual studio также автоматически загружает символы, когда их можно найти в одном из следующих мест.
Расположение, указанное внутри DLL или исполняемого файла. (По умолчанию, если вы создали DLL или исполняемый файл на своем компьютере, компоновщик помещает полный путь и имя файла связанного файла.pdb в DLL или исполняемый файл. Сначала отладчик проверяет, является ли символ Файл существует в месте, указанном внутри DLL или исполняемого файла. Это полезно, потому что у вас всегда есть символы, доступные для кода, скомпилированного на вашем компьютере.)
Файлы.pdb, которые могут присутствовать в той же папке, что и DLL или исполняемый файл.
- Любые локальные папки кэша символов.
- Любые сети, Интернет или локальные серверы символов и местоположения, указанные на нем, например сервер символов Microsoft, если он включен.
Если вы хотите узнать больше о том, как символы используются в Visual Studio, вы можете прочитать эту статью о Understanding symbol files and Visual Studio’s symbol settings
,