Ответ 1
Введение
Всякий раз, когда вы делаете сборку из Visual Studio, обычно вы также получаете файл в нескольких местах
-
1.1 Если он не находит его, вы получаете "Поиск, чтобы найти источник" отключен стр. Помните, вы не можете отлаживать без действительного файла PDB.
-
1.2 Если он находит файл PDB, он просматривает файл PDB и видит, что вы пытаетесь отлаживать
Class1.cs
, который изначально был создан изG:\ClassLibrary1\Class1.cs
и просматривает ваш компьютер для этого файла.
-
1.2.1 Если он находит это, он автоматически переходит в код.
-
1.2.2 Если он не находит его, вы получите следующий диалог:
Если вы нажмете "Отмена", вам будет представлен "Нет источника", и в этом случае вы включите "Обзор, чтобы найти источник".
Почему? Поскольку у вас есть действительный файл PDB, но Visual Studio не может знать, где у вас есть исходный код для ClassLibrary1 на вашем компьютере или если у вас его даже есть на вашем компьютере. Вот почему вы получили диалог → , чтобы вы могли указать Visual Studio на точное местоположение файла исходного кода.
Заключительные примечания
Итак, что вы будете делать, когда получите доступ к источнику, который отключен?
В Visual Studio вы открываете меню Debug → Windows → стек вызовов.
Вы щелкните правой кнопкой мыши на верхней команде stak и выберите "Информация о загрузке символов". Он покажет вам места, где Visual Studio попыталась найти действительный файл PDB.
- 1.a Если вы видите только сообщения "Не удается найти или открыть PDB файл", поместите действительный файл PDB в любом из этих мест. (Возможно, вам потребуется прокрутить вправо, чтобы увидеть сообщения) Остановить и начать отладку снова.
- 1.b Если вы видите сообщение "PDB не соответствует изображению", это означает следующее. Visual Studio нашел файл PDB, но для другой сборки. Если я создам ClassLibrary1.dll и передам его вам, а затем я буду строить его без изменения одной строки кода, а затем дать вам PDB, и вы попытаетесь
для отладки
classLibrary1.dll
вы получите это сообщение. Сборка и ее файл PDB должны быть точно из одной и той же сборки, иначе вы получите это сообщение. (Эта проверка выполняется с использованием некоторого уникального номера, помещенного внутри сборки и файла PDB каждый раз, когда вы создаете). - 1.c Вы видите сообщение, загруженное символами, но по-прежнему отключите "Обзор для поиска". Это означает, что файл PDB, который у вас есть, не подходит для пошаговой отладки. Некоторые файлы PDB, которые вы пытаетесь использовать, не имеют всей информации, необходимой для поэтапной отладки. Я думаю, что вы можете контролировать это где-то в расширенных настройках сборки, но я еще не пробовал, потому что я хочу, чтобы каждый раз, когда я делал сборку, каждый раз, когда я делал сборку, я получал файлы PDB. Эта ситуация часто возникает, если вы пытаетесь отлаживать исходный код структуры .NET, и Microsoft не добавила полезные файлы PDB для источника кода, но вместо этого Microsoft поместила некоторые файлы PDB, которые не могут использоваться для отладки. Это происходит чаще, чем вы думаете, потому что часто Microsoft делает обновления (исправления) исходным кодом .NET Framework. Эти обновления без проблем устанавливаются на ваш компьютер через Центр обновления Windows, и вы удивлены, увидев, что вчера вы можете отлаживать исходный код .NET Framework, и сегодня вы не можете. Обычно требуется некоторое время, пока они не вернут действительный файл PDB для последнего кода. В этом случае вы можете использовать .NET Reflector. Возможность отладки с шагом или виртуальная машина с версией .NET Framework с полезными PDB файлами и отключением Центр обновления Windows на этом компьютере.