информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
мне кажится это глюк самого отладчика... 28.10.06 22:36  Число просмотров: 1032
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
<programming>
Появление исключения до вызова процедуры генерации исключения — процессоры стали слишком быстрые? ;-) 28.10.06 09:07  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Отлаживаю код на Delphi 7. Поставил точку останова до вызова функции API ReadFile, следующая процедура -- Win32Check, которая вызывает исключение, если булевое значение в её единственном входящем параметре неистинно, к примеру
Win32Check(hndl <> INVALID_HANDLE_VALUE).
Ну и ладно. Остановился в точке останова. Нажал F8 (построчная отладка), чтобы воткнуться в Win32Check, и посмотреть на параметр, который пойдёт в эту функцию... Фигассе, исключение вырабатывается ещё до захода в Win32Check!

Как такое может быть? Я в шоке. Причём исключение генерит именно Win32Check, с его глупым сообщением "Call to OS function failed".
А ты случайно не путаешь клавиши F7 и F8? Пошаговая отладка всегда была F7 30.10.06 19:41  
Автор: Neznaika <Alex> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
А построчная — F8 :) 31.10.06 12:36  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Посмотри debug view > CPU 30.10.06 12:00  
Автор: Cyril <sc> Статус: Member
Отредактировано 30.10.06 12:02  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
> Отлаживаю код на Delphi 7. Поставил точку останова до
> вызова функции API ReadFile, следующая процедура --
> Win32Check, которая вызывает исключение, если булевое
> значение в её единственном входящем параметре неистинно, к
> примеру
> Win32Check(hndl <> INVALID_HANDLE_VALUE).
> Ну и ладно. Остановился в точке останова.
Попробуй нажать ctrl+alt+c и в появившемся окне понажимать F8
>Нажал F8
> (построчная отладка), чтобы воткнуться в Win32Check, и
> посмотреть на параметр, который пойдёт в эту функцию...
> Фигассе, исключение вырабатывается ещё до захода в
> Win32Check!
может быть компилятор считает что выражение
hndl <> INVALID_HANDLE_VALUE всегда ложь и поэтому сразу генерит исключение
INVALID_HANDLE_VALUE = DWORD(-1) = LongWord(-1)
результат ReadFile это bool насколько я понимаю всегда >=0
(-1) < ReadFile поэтому компилятор решил оптимизировать этот участок
кода и сразу генерить исключение ;-) умный какой
Не факт что все именно так, это лишь одна из версий ;-)


Win32Check(hndl <> INVALID_HANDLE_VALUE).

>
> Как такое может быть? Я в шоке. Причём исключение генерит
> именно Win32Check, с его глупым сообщением "Call to OS
> function failed".
Не, там был другой контекст... Уже пофиг что там было, всё равно отладил. 30.10.06 15:26  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 30.10.06 15:27  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Просто это я затеял к тому, что раньше трава была зеленее, деффки ну вы поняли какие были деффки -))

Вот я думаю -- последний раз плотно кодил на Delphi когда процы были 800 МГц PIII -- самое оно. Сейчас сижу на селероне 3,2 ГГЦ. Раньше таких глюков в отладчике вроде не было. Может отладчик «не догадывается», что будут такие скорости, и где-то косячит, не успевая воткнуть INT3 куда надо? -)))
Может компилятор балует? Попробуй выключить оптимизацию, переписать соседние строчки, вставить какую-нибудь ненужную операцию. 28.10.06 10:55  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
мне кажится это глюк самого отладчика... 28.10.06 22:36  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
+1 к Shaman'у и Tamas'у. Поставь сравнение интересующего значения перед вызовом Win32Check, и будет тебе щастье. 29.10.06 01:10  
Автор: Fighter <Vladimir> Статус: Elderman
Отредактировано 29.10.06 01:20  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
+1 к Shaman'у, Tamas'у и Fighter-у 30.10.06 13:43  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Исторически сложилось так, что у борланда не получаются нормальные компиляторы. Как вариант я бы посоветовал тебе включить опцию листинга (генерация асма + соответствующие строки исходника) и полезть туда в поисках правды
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach