Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.06.19;
Скачать: [xml.tar.bz2];

Вниз

почему точка останова не активна?   Найти похожие ветки 

 
картман ©   (2011-03-10 15:53) [0]

Всем доброго времени суток!

if Condition then
  Exit;

на Exit; ставлю точку останова - не активна, но точно отрабатывает. Почему?


 
clickmaker ©   (2011-03-10 16:05) [1]

галки debug в настройках проекта стоят?


 
картман ©   (2011-03-10 16:07) [2]

стоят


 
stas ©   (2011-03-10 16:10) [3]

Rebuild сделайте


 
картман ©   (2011-03-10 16:20) [4]


> stas ©   (10.03.11 16:10) [3]
>
> Rebuild сделайте

делал.

может из-за типов в условии:

Key: AnsiChar
FText: PAnsiChar
...
if Key = FText[FCurrPos] then
 Exit;
?


 
stas ©   (2011-03-10 16:21) [5]

а если на if поставить активна?


 
картман ©   (2011-03-10 16:24) [6]


> а если на if поставить активна?

да


 
OW ©   (2011-03-10 16:24) [7]

rebild - ребилдом.. а все таки:

Close

erase *.~*
erase *.dcu
erase *.ddp
erase *.rar
erase *.rsm
erase *.map

run Delphi
F9 ?


 
картман ©   (2011-03-10 16:27) [8]


> OW ©   (10.03.11 16:24) [7]

делал

   if Node^.Key = FText[FCurrPos] then
   begin
     ShowMessage("sadf");
     Exit;
   end;

а вот так работает.

Может компилятор что-то там свое неочевидное делает? Оптимизацию отключил.


 
stas ©   (2011-03-10 16:54) [9]

а если точку поставить на if а потом - пошагово, заходит на exit?


 
Amoeba_   (2011-03-10 17:12) [10]

Ставь точку останова не на Exit, а на end процедуры. Если Condition не выполняется, то сразу попадешь туда.


 
картман ©   (2011-03-10 17:35) [11]


> а если точку поставить на if а потом - пошагово, заходит
> на exit?

неа, сразу на end.


> Ставь точку останова не на Exit, а на end процедуры. Если
> Condition не выполняется, то сразу попадешь туда.

это понятно - мне интересно "ну пачиму?" И потом, почему [8]? По идее, должно быть так же, ан нет.


 
harisma ©   (2011-03-10 17:41) [12]

А в дельфе при трассировке на Exit не попадает никогда. :) Особенности компилятора, однако.


 
картман ©   (2011-03-10 17:49) [13]


> harisma ©   (10.03.11 17:41) [12]

поадает, см. [8]


 
Anatoly Podgoretsky ©   (2011-03-10 21:58) [14]

Ставь точку на IF, а это просто особенность отладчика


 
картман ©   (2011-03-10 22:54) [15]


>  особенность отладчика

офигеть


 
sniknik ©   (2011-03-10 23:42) [16]

похоже он "сливает" все в одну строку-команду.
а так попробуй
if Condition then begin
 Exit;
end;


 
clickmaker ©   (2011-03-10 23:54) [17]

собственно, сам отладчик в момент запуска ставит синие точки на строчках, где разрешены бряки


 
картман ©   (2011-03-11 00:09) [18]


> сам отладчик в момент запуска ставит синие точки на строчках,
>  где разрешены бряки

ну да - на Exit не ставит.


>  sniknik ©   (10.03.11 23:42) [16]
>
> похоже он "сливает" все в одну строку-команду.
> а так попробуй
> if Condition then begin
>  Exit;
> end;

пробовал - не ставит.


 
MonoLife ©   (2011-03-11 03:39) [19]

после Exit до end еще что-нить есть?


 
brother ©   (2011-03-11 06:04) [20]

встречался с подобным, решал бряком на IF, думаю, что это [17]


 
картман ©   (2011-03-11 11:51) [21]


> после Exit до end еще что-нить есть?

есть


 
Inovet ©   (2011-03-11 12:06) [22]

Наверно в этом виде на exit нет машинного кода. А зачем он там.


 
Anatoly Podgoretsky ©   (2011-03-11 12:24) [23]

> Inovet  (11.03.2011 12:06:22)  [22]

Его и нет, поэтому и точки нет. Код в самом IF


 
картман ©   (2011-03-11 15:47) [24]


> Inovet ©   (11.03.11 12:06) [22]
>
> Наверно в этом виде на exit нет машинного кода. А зачем
> он там.

да фик знает, зачем он там - хотя бы затем, чтоб мне отлаживать удобней было.


 
clickmaker ©   (2011-03-11 15:56) [25]

> чтоб мне отлаживать удобней было

if condition then begin
 while(false) do;
 Exit;
end;

-)


 
Inovet ©   (2011-03-11 16:45) [26]

> [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:


 
antonn ©   (2011-03-11 17:17) [27]


> clickmaker ©   (11.03.11 15:56) [25]
>
> > чтоб мне отлаживать удобней было
>
> if condition then begin
>  while(false) do;
>  Exit;
> end;
>
> -)
>

и не отоптимизирует? :)


 
clickmaker ©   (2011-03-11 17:19) [28]

> и не отоптимизирует? :)

на время отладки можно выключить.
а для придания коду крутости можно и
asm NOP end;
вместо while


 
картман ©   (2011-03-11 17:32) [29]


> 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:37) [30]

> так почему бы компилятору на время отладки так не делать?

походу это багофича именно отладчика.
компилятору-то с чего лишний код лепить?


 
картман ©   (2011-03-11 18:22) [31]


> походу это багофича именно отладчика.
> компилятору-то с чего лишний код лепить?

это я по-неграмотности возложил ответственность на компилятор(



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.06.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.004 c
2-1299761604
картман
2011-03-10 15:53
2011.06.19
почему точка останова не активна?


15-1299015000
Юрий
2011-03-02 00:30
2011.06.19
С днем рождения ! 2 марта 2011 среда


3-1260890661
man Yury
2009-12-15 18:24
2011.06.19
Странный результат при выполнении хранимой процедуры


1-1257493538
harisma
2009-11-06 10:45
2011.06.19
Использование JVCL компонент в DLL


4-1248249215
sektor
2009-07-22 11:53
2011.06.19
Добавление текста в RichEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский