Рассмотрим следующий код:
Код: Выделить всё
while (fileContents.Length < charNum + 1)
{
fileContents = File.ReadAllText(_filePath);
}
Поэтому я использую диспетчер задач, чтобы создать дамп программы, перенести его на свой компьютер разработчика и открыть в Visual Studio, где у меня также есть exe, pdb и исходный код.
Но когда я пытаюсь отладить, я получаю:
mscrolib.ni.pdb не загружен
mscorlib.ni.pdb содержит отладочную информацию, необходимую для поиска исходного кода модуля
Очевидно Я не могу получить этот PDB, потому что это собственный образ, созданный ngen.exe. Честно говоря, меня это не слишком беспокоит (я вижу File.ReadAllText в дизассемблере, поэтому предполагаю, что именно поэтому он там остановился), я просто хочу посмотреть, где он остановился в моем собственном коде, и отладить его.
Можно ли как-нибудь это сделать? Я пробовал просмотреть стек вызовов, но получил только следующее:
[Внешний код]
mscorlib .ni.dll![Кадры ниже могут быть неправильными и/или отсутствовать, встроенный отладчик пытается пройти через стек управляемых вызовов] Неизвестно
Просмотр тем дает мне 7 потоки, и это «Основной поток», остальные (рабочие потоки) — это ntdll.dll, clr.dll и combase.dll — ни один из них не содержит полезной информации, поэтому я чувствую, что уже просматриваю правильный поток.
Редактировать
Итак, я открыл окно «Модули» в отладчике и увидел, что каждый модуль имеет статус символа = «Символы загружены». ', за исключением моего приложения и mscorlib.ni.dll! Теперь, когда я пытаюсь загрузить символы для своего приложения, я просматриваю и открываю файл pdb из исходной сборки и получаю сообщение об ошибке:
В этой папке не найден соответствующий файл символов.
Но это файл символов из этого .exe!
Подробнее здесь: https://stackoverflow.com/questions/790 ... using-dump
Мобильная версия