Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Debug dcu [D7, WinXP]


Maxim_____ ©   (2004-09-27 20:04:00) 

Существует ли возможность при отладке step by step
исключить некоторые места? Мне например совершенно неинтересно как робатает в vcl-е асмовские места,
да и некоторые юниты целиком бы отключил.
И также и в своём коде мне хотелось бы отключить некоторые юниты и процедуры из рассмотрения при отладке step by step.


Семен Сорокин   (2004-10-02 12:19:00) [1]

ctrl-alt-s = View->Debug Windows->Call Stack
очень полезная штука, показывает стек вызовов процедур и функций на текущем моменте (останове) выполнения кода, соответственно при ошибке - покажет стек вызовов.
Для корректного отображения рекомендуется не снимать галочку Use Debug DCUs.


Maxim_____   (2004-10-02 08:11:00) [2]

Fedia   (01.10.04 06:15) [5]

ошибка invalid pointer operation
возникает не сразу, а поле сотого прохода
этого проклятого места....

подскажите что сие значит?
ctrl-alt-s
в хелпе не нашёл.

причина ошибки у меня, видимо, зарыта где-то глубоко.
и я сделал её не сейчас, а намного раньше, но последствия
стали появляться только сейчас.
я делаю ежедневные бекапы, но терять день работы мне в тот момент не захотелось, а сейчас к тому состоянию вернуться = потерять много дней...


KSergey   (2004-10-01 06:30:00) [3]

> [4] Maxim_____   (01.10.04 05:23)

Искренне советую освоить Ctrl+Alt+S
Как ошибка - жмем - и о чудо! ;)

PS
Признаюсь, до недавнего времени как-то недооценивал, особенно для этих сучаев, теперь просто пищу ;)


Fedia   (2004-10-01 06:15:00) [4]

Честно говоря непонятно, зачем ты скачешь "несколько минут(!)
по VCL коду".
При отладке я использую следующим алгоритм.
1.Поставил точку останова после стабильно работающего кода.
2.Запустил программу.
3.Дождался достижения точки останова.
4.Дальше идешь по коду используя F8.
5.Если после очередного нажатия на F8 возникает ошибка, то варианта два:
- если эта строчка кода является входом в процедуру или функцию, то ставишь точку останова в начале этой функции или процедуры и переходишь к пункту 2;
- если нет, то ошибка, скорее всего именно в этой строчке кода.

Этот алгоритм помогает в большинстве случаев.


Maxim_____   (2004-10-01 05:23:00) [5]

директива $D не даёт эффекта перепрыгивания.
сбросить флажок debug DCU неинтересно, потому что
отлавливаю runtima error, которая происходит при каждом выходе,
но непонятно почему.
в процессе выхода приходится по несколько минут(!)
скакать по VCL коду, пока дойдёшь до того места где возникает RTE
F8 - не вариант, потому что пропускает что хочет


Юрий Зотов   (2004-09-28 00:37:00) [6]

Для кода VCL - сбросить флажок Use Debug DCUs. Альтернатива - не нажимать F7, где не надо, а нажимать F8.

Для своего кода - расставить директивы $D. Альтернатива та же.


Maxim_____   (2004-09-27 23:31:00) [7]

расставить точки - это для того чтобы не пропустить место, на мне надо наоборот.


Cobalt   (2004-09-27 22:08:00) [8]

Может, просто расставить отладочные точки?


Наверх

Титульная страница Поиск, карта сайта Написать письмо