Hi asdfghjkl
a>>>Еще раз повторяю: не "поменялись данные", начальные значения оказались не те, что надо.
AV>>То есть у тебя функция чистая? То есть использует только локальные переменные и параметры?
a>Как правило да. По крайней мере, я к этому стремлюсь.
Как-то тяжело это вяжется с ООП. Или ты члены классов передаешь в функцию через параметры?
a>А если использует — что это меняет? Пока выполняется функция они поменяться не могут.
Почему пока выполняется функция они не могут поменяться? А если меняются и функция не чистая, то повторный проход при отладке даст другой результат, чем при первом проходе.
AV>> Кстати, если у тебя начальные значения оказались не те, что надо, как ты ее отлаживаешь?
a>Меняешь на те и повторяешь. Аналогично с циклами — возвращаешься на начало и повторяешь. А вообще вариантов использования этой фичи — масса.
ну поменять на правильные параметры ты можешь. Ну пройдешь в отлаживаемой функции по шагам. И что? Ошибка-то не в вызываемой функции, а в вызывающей? Ведь это вызывающая функция передала неправильные параметры. Смысл несколько раз шагать по вызываемой?
AV>>Раньше я как раз пользовался пошаговыми отладчиками. Потом посмотрел в прошлое и оказалось, что пошаговая отладка занимает больше времени.
a>Ну если шагать начиная с main() — то конечно. Но обычно ставится точка останова на подозрительное место и оттуда шагаешь. Удобная фича — временная точка останова aka Go to Cursor. Но опять же, после остановки нет большого смысла тупо смотреть на переменные. Интересно посмотреть на порядок исполнения.
Ну это понятно, что не с main() начинаешь трассировать. А смысл смотреть порядок исполнения? Как раз логичнее анализировать значения переменных. То есть состояние программы.
Кстати, а как ты предлагаешь отлаживать подобным образом серверные приложения? Или, например, многопоточные?
--
С Уважением
Posted via RSDN NNTP Server 2.0