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

Вниз

Поведение Debuger а   Найти похожие ветки 

 
Джинн   (2005-02-11 16:28) [0]

При выполнении некоторых участков кода Debuger автоматически приостанавливает выполнение программы и отображает окно CPU. По F9 выполнение продолжается.
Никаких сообщений об ошибках нет.
Что это такое?


 
TUser ©   (2005-02-11 16:42) [1]

Пример "некоторого участка кода" существует?


 
Джинн   (2005-02-11 18:25) [2]


   mov [ebp-$04],eax
   jnz +$0000f1ea
   test byte ptr [esi+$10],$10
   jz +$0000f1e0
   pop esi
   leave
   ret $0004
   nop
   nop
   nop
   nop
   nop
ntdll.DbgBreakPoint:
   int 3
   ret      ; в этой точке останов
 

Происходит при запуске приложения. Code Editor не отображает точку останова. После F9 все продолжает нормально работать.

Cпециально для теста соорудил пробный проект. Он состоит из двух форм, на обеих - по панельке (TPanel). У панели на первой форме установлено Anchors = [akLeft, akTop, akRight, akBottom]. В обработчике события OnResize для панели на первой форме написано:
 if Assigned(Form2) then
 begin
   Form2.Panel1.Width := Panel1.Width;
   Form2.Panel1.Height := Panel1.Height;
 end;


В данном случае останов происходит при изменении размеров первой формы, как только панель на второй форме начнет выходить за пределы второй формы. При этом на второй форме появляются полосы прокрутки, форма теряет стиль оформления XP, и - происходит останов. Место останова то же самое (см. ассемблерный код в начале поста).

Вопрос в том, почему происходит эта остановка. Никаких BreakPoint"ов не стоит. Никаких сообщений об ошибках не выдается.
Именно это меня и волнует. Возможна ли такая ситуация, что на самом деле происходит некий Exception, а сообщение не выдается?


 
Джинн   (2005-02-11 18:40) [3]

Может ли так быть, что это некий перехваченный Exception внутри DCU? То-есть, показать точку останова нет возможности, так как это DCU. Да и ошибки нет, так как она перехвачена.

Наподобие:
 try
   //некий код
 except
 end;

Если это потом откомпилировать в DCU, и исходник убрать, не будет ли этот участок кода вести себя так же?


 
TUser ©   (2005-02-11 18:47) [4]


> Может ли так быть, что это некий перехваченный Exception
> внутри DCU? То-есть, показать точку останова нет возможности,
> так как это DCU. Да и ошибки нет, так как она перехвачена.

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

По ходу дела у тебя с Delphi чего-то не так. Переставь его.


 
Джинн   (2005-02-11 19:20) [5]

>>Переставь его.

Спасибо уж... стоит только вторую неделю.
Попробую дома, если то же самое - за "базар" придется отвечать :)

Debuger останавливается на всех Exception"ах, даже если они в try...except...end. Так в настройках указано.


 
GuAV ©   (2005-02-12 01:09) [6]


>   int 3


это и есть breakpoint прописан в коде. Т.е. ничего странного нормальная реакция отладчика.

btw, RTFM MSDN DbgBreakPoint



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

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

Наверх




Память: 0.46 MB
Время: 0.051 c
1-1108463529
Nekromant
2005-02-15 13:32
2005.02.27
переименовываю файл .....


3-1107080299
MakedoneZ
2005-01-30 13:18
2005.02.27
Столбцы в TDBGrid.


1-1108369951
fuzzy
2005-02-14 11:32
2005.02.27
Растолкуйте смысл ошибки asm кода.


6-1103192994
Ivolg
2004-12-16 13:29
2005.02.27
Web Server


14-1107434240
syte_ser78
2005-02-03 15:37
2005.02.27
Ктонибуть зарядку по утрам делает?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский