Комментарии 31
полезно, спасибо :)
как-то, после уже нескольких лет использования Visual Studio, я узнал, что при отладке можно потянуть желтую стрелочку, указывающую на текущую позицию выполнения программы, вверх и тем самым получить возможность еще раз выполнить уже выполненный код (изменив, например, некоторые переменные).
Было так стыдно, что не знал этого раньше.
Было так стыдно, что не знал этого раньше.
Можно просто нажать Ctrl+Shift+F10 на нужной строчке, чтобы вернуть на нее управление. Что самое интересное, в главном меню этой команды почему-то нет ^_^
Right Click -> Set Next Statement
В главном меню
И?
В главном меню не содержатся все команды, им там не место. Данную конкретную команду поместили в контекстное меню, что совершенно правильно.
В главном меню не содержатся все команды, им там не место. Данную конкретную команду поместили в контекстное меню, что совершенно правильно.
Отладочным командам место в меню Debug, я так считаю.
И много ты знаешь команд, которые недоступны через главное меню?
И много ты знаешь команд, которые недоступны через главное меню?
При переходе в главное меню теряется, в частности, визуальное отображение текущей строки — гасится курсор. Соответственно, куда именно будет перемещен результат выполнения «Set Next Statement» уже не видно, т.е. пользоваться уже не удобно.
>И много ты знаешь команд, которые недоступны через главное меню?
Посмотри Tools->Options->Environment->Keyboard. Там несколько сотен, возможно тысяч команд. Отнюдь не всем им требуется быть в главном меню.
>И много ты знаешь команд, которые недоступны через главное меню?
Посмотри Tools->Options->Environment->Keyboard. Там несколько сотен, возможно тысяч команд. Отнюдь не всем им требуется быть в главном меню.
Кстати для x64 это не работает. В настройках проекта можно выставить x86 и будет все норм.
А еще очень удобно перетащить «желтую стрелочку» вверх, тут же изменить значения у некоторых переменных и прогнать еще раз с другими параметрами.
А еще очень удобно перетащить «желтую стрелочку» вверх, тут же изменить значения у некоторых переменных и прогнать еще раз с другими параметрами.
Плюс к тому можно изменять код во время того, как остановлено выполнение программы.
Если заметили ошибку, можно переписать пару строчек и выполнить еще раз исправленный вариант без полного перезапуска приложения.
Если заметили ошибку, можно переписать пару строчек и выполнить еще раз исправленный вариант без полного перезапуска приложения.
А подскажите как можно это сделать?
А вы просто попробуйте. Остановите программу во время выполнения и допишите пару строчек кода. Конечно это не всесильный инструмент и Вам не удастся написать новые методы, которых раньше не существовало, изменить структуру try catch и прочие вещи, которые очень привязаны к ходу выполнения, но простой код меняется легко.
В итоге студия может: останавливать выполнение, перетаскивать точку выполнения вверх/вниз (пропуская или повторяя код), менять значения переменных на ходу, менять КОД на ходу. Некоторые ошибки благодаря этому отлавливаются и исправляются в считанные секунды. Вопросы будут, задавайте
В итоге студия может: останавливать выполнение, перетаскивать точку выполнения вверх/вниз (пропуская или повторяя код), менять значения переменных на ходу, менять КОД на ходу. Некоторые ошибки благодаря этому отлавливаются и исправляются в считанные секунды. Вопросы будут, задавайте
И я добавлю одну фичу, о которой узнал совсем недавно. Во время отладки в окошко Immediate Window можно вводить код, который выполняется в текущем контексте выполнения, тоже иногда бывает удобно.
Терминология немного непривычная: thread обычно переводят как «поток исполнения» или просто «поток», часто встречается «нить».
Ещё плюшка: Shift+F11 (Step out), возврат в точку вызова функции. Удобно шарахаться по call stack.
Ещё плюшка: Shift+F11 (Step out), возврат в точку вызова функции. Удобно шарахаться по call stack.
Спасибо огромное, очень полезная информация. Похоже, рано или поздно придётся всё-таки купить 2010ю студию. Сделали бы они на неё скидку как на 2008ю в своё время…
Если вы хотите покупать 2010 студию, чтобы получить этот функционал в отладчике, то он весь есть и в 2008-ой студии. А если для всех удобств и новшеств для .NET 4, MVC 2, тогда да есть смысл.
извините, не совсем по теме…
Silverlight обновился до 4й версии и перестал работать дебуг сильверлайт приложений.
Что делать?
Silverlight обновился до 4й версии и перестал работать дебуг сильверлайт приложений.
Что делать?
Чем больше работаю со студией, тем больше нахожу в ней «плюшек». Спасибо Вам и Скотту :).
ПС: Я бы воспользовался Debug.Write(); вместо написания макроса.
ПС: Я бы воспользовался Debug.Write(); вместо написания макроса.
Пожалуйста. :)
Всегда хорошо, когда есть много способов сделать одно и то же.
Но видимо он нас хотел научить как писать макросы. :)
Всегда хорошо, когда есть много способов сделать одно и то же.
Но видимо он нас хотел научить как писать макросы. :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Советы по отладке в Visual Studio 2010