![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
почему точка останова не активна? [D7, XP]
картман © (2011-03-10 15:53:00)Всем доброго времени суток!
if Condition then
Exit;
на Exit; ставлю точку останова - не активна, но точно отрабатывает. Почему?
картман (2011-03-11 18:22:00) [1]
> походу это багофича именно отладчика.
> компилятору-то с чего лишний код лепить?
это я по-неграмотности возложил ответственность на компилятор(
clickmaker (2011-03-11 17:37:00) [2]> так почему бы компилятору на время отладки так не делать?
походу это багофича именно отладчика.
компилятору-то с чего лишний код лепить?
картман (2011-03-11 17:32:00) [3]
> clickmaker © (11.03.11 17:19) [28]
>
> > и не отоптимизирует? :)
>
> на время отладки можно выключить.
> а для придания коду крутости можно и
> asm NOP end;
> вместо while
так почему бы компилятору на время отладки так не делать?
> Inovet © (11.03.11 16:45) [26]
>
> > [24] картман © (11.03.11 15:47)
> > хотя бы затем, чтоб мне отлаживать удобней было
>
> Нет ты спросил
> [0] картман © (10.03.11 15:53)
> на Exit; ставлю точку останова - не активна, но точно отрабатывает. Почему?
да, спросил - издалека.
clickmaker (2011-03-11 17:19:00) [4]> и не отоптимизирует? :)
на время отладки можно выключить.
а для придания коду крутости можно и
asm NOP end;
вместо while
antonn (2011-03-11 17:17:00) [5]
> clickmaker © (11.03.11 15:56) [25]
>
> > чтоб мне отлаживать удобней было
>
> if condition then begin
> while(false) do;
> Exit;
> end;
>
> -)
>
и не отоптимизирует? :)
Inovet (2011-03-11 16:45:00) [6]> [24] картман © (11.03.11 15:47)
> хотя бы затем, чтоб мне отлаживать удобней было
Нет ты спросил
> [0] картман © (10.03.11 15:53)
> на Exit; ставлю точку останова - не активна, но точно отрабатывает. Почему?
Вот и ответили. Зачем бы там нужна конструкция из двух переходов, когда можно один с инверсией условия, Что-нибудь навроде:
test eax
jz end_if
jmp end_proc ; exit
end_if:
...
end_proc:
или
test eax
jnz end_proc
...
end_proc:
clickmaker (2011-03-11 15:56:00) [7]> чтоб мне отлаживать удобней было
if condition then begin
while(false) do;
Exit;
end;
-)
картман (2011-03-11 15:47:00) [8]
> Inovet © (11.03.11 12:06) [22]
>
> Наверно в этом виде на exit нет машинного кода. А зачем
> он там.
да фик знает, зачем он там - хотя бы затем, чтоб мне отлаживать удобней было.
Anatoly Podgoretsky (2011-03-11 12:24:00) [9]> Inovet (11.03.2011 12:06:22) [22]
Его и нет, поэтому и точки нет. Код в самом IF
Inovet (2011-03-11 12:06:00) [10]Наверно в этом виде на exit нет машинного кода. А зачем он там.
картман (2011-03-11 11:51:00) [11]
> после Exit до end еще что-нить есть?
есть
brother (2011-03-11 06:04:00) [12]встречался с подобным, решал бряком на IF, думаю, что это [17]
MonoLife (2011-03-11 03:39:00) [13]после Exit до end еще что-нить есть?
картман (2011-03-11 00:09:00) [14]
> сам отладчик в момент запуска ставит синие точки на строчках,
> где разрешены бряки
ну да - на Exit не ставит.
> sniknik © (10.03.11 23:42) [16]
>
> похоже он "сливает" все в одну строку-команду.
> а так попробуй
> if Condition then begin
> Exit;
> end;
пробовал - не ставит.
clickmaker (2011-03-10 23:54:00) [15]собственно, сам отладчик в момент запуска ставит синие точки на строчках, где разрешены бряки
sniknik (2011-03-10 23:42:00) [16]похоже он "сливает" все в одну строку-команду.
а так попробуй
if Condition then begin
Exit;
end;
картман (2011-03-10 22:54:00) [17]
> особенность отладчика
офигеть
Anatoly Podgoretsky (2011-03-10 21:58:00) [18]Ставь точку на IF, а это просто особенность отладчика
картман (2011-03-10 17:49:00) [19]
> harisma © (10.03.11 17:41) [12]
поадает, см. [8]
harisma (2011-03-10 17:41:00) [20]А в дельфе при трассировке на Exit не попадает никогда. :) Особенности компилятора, однако.