Я работаю над программой, которая использует Систему. Диагностика. Отладчик. Повреждение () метод, чтобы позволить пользователю устанавливать точку останова от командной строки. Это хорошо работало в течение многих недель теперь. Однако, когда я работал над фиксацией модульного теста сегодня, я пытался использовать переключатель отладки от командной строки, и это не работало.
Вот то, что я попробовал:
Быстрый поиск Google ничего не показал, и документация API для .NET ничего не упоминает об этой функции, не работающей правильно. Так... какие-либо идеи?
Я наконец понял, что происходит. По какой-то причине на моей машине что-то изменилось, так что простого вызова Debugger.Debug уже было недостаточно (до сих пор не понимаю, что изменилось). В любом случае теперь я могу вызвать отладчик, используя:
if (Debugger.IsAttached == false) Debugger.Launch();
Вы используете VS 2008 SP1? У меня было много проблем с отладкой в этом выпуске, и все они были решены этим патчем Microsoft .
Точки останова, помещенные в циклы или в рекурсивные функции, не достигаются во всех процессах на каждой итерации. Часто некоторые процессы могут проходить через множество итераций. цикла, игнорируя точку останова, перед остановкой процесса .
Точки останова достигаются, но они не видны при отладке нескольких процессов в отладчике Visual Studio .
Также исправлено несколько других проблем, связанных с отладчиком.