День 1392. #TipsAndTricks
Советы и Инструменты Отладки. Начало
В этой серии постов приведу несколько советов и инструментов, которые помогут отлаживать приложения .NET. Список не исчерпывающий, здесь только некоторые варианты.
Коротко случайные советы
- Поговорите с резиновой уточкой.
- Прогуляйтесь, поспите, поиграйте в игру и т.д., а потом вернитесь к своему коду на свежую голову.
- Внимательно прочитайте документацию.
- Прежде чем изменять код, убедитесь, что вы понимаете, почему он ведёт себя не так, как вы ожидаете.
- Напишите тест, который воспроизводит ошибку, чтобы вы могли быстро исправить её.
- Удалите/закомментируйте весь код, который не нужен для воспроизведения ошибки. В итоге у вас должен получиться небольшой фрагмент кода, воспроизводящий ошибку (используйте систему контроля версий, чтобы вы всегда могли вернуться к исходному коду).
- Можно сделать наоборот: создать новое приложение и постепенно добавлять код, пока ошибка не появится.
- Время, потраченное на использование отладчика, едва ли ускорит решение последующих задач. А вот улучшение логирования и сообщений об ошибках поможет. Это может сэкономить вам или вашим коллегам время в будущем.
А теперь более подробные советы.
1. Код выполняется?
Если нет уверенности, что код действительно выполняется, добавьте throw или Console.Write в код. Да, звучит банально, но отладочный вывод в некоторых случаях сделать проще всего. Для надёжности можно обернуть этот код в директивы препроцессора:
public void MethodToDebug()
{
#if DEBUG
Console.WriteLine("Debugging");
throw new Exception("Debugging");
#endif
//…
}
2. Запуск отладчика из кода
Если вы не можете запустить процесс в режиме отладки и не можете найти способ присоединить отладчик к существующему процессу, вы можете использовать System.Diagnostics.Debugger.Launch() или System.Diagnostics.Debugger.Break(); там, где вы хотите установить точку останова. См. подробнее об их использовании.
В Windows отладку процесса можно начать из Диспетчера Задач. Нажмите правой кнопкой мыши на нужный процесс и выберите Debug (Отладка).
3. Отладка более чем одного процесса за раз
Visual Studio может отлаживать несколько процессов одновременно. Например, вы можете одновременно отлаживать веб-приложение и консольное приложение. Для этого перейдите в Debug > Set Startup Projects… (Отладка > Установить стартовые проекты) и установите на запуск несколько проектов. Кроме того, в меню Debug > Attach to Process… (Отладка > Прикрепить к процессу…) можно выбрать несколько процессов.
4. Наблюдение за значением переменной без отладчика
Если вы не можете подключить отладчик, вы можете регистрировать значения с помощью Console.WriteLine(), File.WriteAllText() или Logger.LogDebug() для вывода значений, которые вы хотите наблюдать.
Продолжение следует…
Источник: https://www.meziantou.net/debugging-tips-and-tools.htm