Можете ли вы отладить приложение .NET, используя ТОЛЬКО исходный код одного файла?

StackOverflow https://stackoverflow.com/questions/107179

Вопрос

Я хочу отладить приложение в Visual Studio, но у меня есть исходный код ТОЛЬКО для 1 класса.Мне нужно выполнить только одну функцию в этом файле, но я не понимаю, что мне для этого нужно.Я думаю, что шаги обычно выглядят примерно так:

  1. Открыть файл в VS
  2. Загрузите «символы» (файл .PDB)
  3. Присоединиться к запущенному процессу

Я знаю, как выполнить действия №1 и №3, но не знаю, как выполнить №2 без файла .PDB.Можно ли создать для этого файл .PDB, чтобы он работал?Спасибо!

Это было полезно?

Решение

Вам нужны файлы *.pdb (шаг 2 из вашего сообщения). Эти файлы содержат сопоставление между исходным кодом и скомпилированной сборкой.Так что ваш шаг правильный.Если ваш исходный файл имеет различия с исходным файлом, установите флажок «Разрешить отличие исходного кода от исходной версии» в диалоговом окне свойств BP.

Точки останова и точки трассировки в Visual Studio

Если у вас нет файлов PDB, вы можете попробовать декомпилировать проект, используя Reflector.FileDisassembler или Генератор файлов для отражателя.Вы можете перекомпилировать эти файлы, чтобы получить PDB.

Также взгляните на Деблектор - надстройка отладки для Reflector.

Другие советы

Вам понадобится файл символов (.PDB), принадлежащий приложению, которое вы пытаетесь отладить.

MSDN:PDB-файлы

Отладчик Visual Studio использует путь к PDB в файле EXE или DLL, чтобы найти файл project.pdb.Если отладчик не может найти файл PDB в этом месте или если путь недействителен, например, если проект был перенесен на другой компьютер, отладчик ищет путь, содержащий EXE-файл, а затем пути к символам, указанные в диалоговом окне «Параметры». .Обычно этот путь представляет собой папку «Отладка» в узле «Символы».Отладчик не будет загружать PDB, который не соответствует отлаживаемому двоичному файлу.

Файл символов — это файл .pdb.Если вы поместите его рядом с исполняемым файлом, это загрузит символы и укажет на исходный файл.

В вашем случае «Символы» означают PDB-файл для сборки, которую вы хотите отладить.Отладчику не требуется наличие всего исходного кода, достаточно наличия соответствующего PDB.PDB создается во время сборки сборки, и, к сожалению, вы не можете создать его постфактум.Если у вас нет PDB, вам потребуется отладка на более низком уровне, чем исходный код.

Если вы собрали сборку на своей машине, символы будут найдены при прикреплении.В этом случае просто установите точку останова на исходном коде и сделайте все необходимое, чтобы этот код запустился, и вы достигнете точки останова.

Если вы его не собирали, вам нужно найти pdb для сборки.Окно модулей, расположенное в разделе «Отладка/Windows/Модули», часто может помочь, сообщая вам о сборках, загруженных в процессе, а также информацию о версии и временные метки.

Эта информация понадобится вам в тех случаях, когда может существовать несколько версий сборки (например, при сохранении большого количества ночных сборок или около 20 последних версий из сборок непрерывной интеграции).

надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top