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

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

AV связанное TCustomForm.GetMonitor [D4, Win2k, WinXP]


Германн ©   (2005-12-08 18:16:00) 

Пожалуйста помогите найти причину AV.
EAccessViolation : Access violation at address 0044C8F0 in module 'InspOffVX10.exe'. Read of address 00000004

В окне CPU адрес 0044С80 указывает
call TCustomForm.GetMonitor
mov eax,[eax+$04]
       <- вот на эту строку


Германн   (2005-12-08 19:10:00) [1]


> umbra ©   (08.12.05 19:00) [6]
>
> а это не служба?


Ни боже мой. Обычная программа.
Да, ещё. Сам компьютер, на котором работает программа стоит в помещении с весьма ограниченным доступом. Поэтому люди, у которых есть права админа на сей комп и максимальные права на программу, работают с ней в основном через удаленного администратора. Кажется из NetOp. Ранее это происходило очень редко и ненадолго, а в последнее время так почти круглые сутки. Попросил их выключить NetOp и перезагрузить основной компьютер. Пока полет нормальный. Ждем-с.


umbra   (2005-12-08 19:00:00) [2]

а это не служба?


Германн   (2005-12-08 18:54:00) [3]


> так а в FormShow заходит? или АВ в ShowModal происходит?

По логу видно, что в обработчик OnShow не заходит. Похоже, что именно в ShowModal.


umbra   (2005-12-08 18:44:00) [4]

так а в FormShow заходит? или АВ в ShowModal происходит?


Германн   (2005-12-08 18:35:00) [5]


> Johnmen ©   (08.12.05 18:25) [2]
>
> А можно код увидеть?


Собственно особо показывать нечего. :(

       {$IFDEF FindErr}
       SaveLog(nil,'','SetOhrana 12');  Эта строчка в логе есть
       {$ENDIF}
       ShowModal;


Далее в форме, которую выше "ShowModal;":
procedure TFStateProtection.FormShow(Sender: TObject);
begin
 {$IFDEF FindErr}
 FInspMain.SaveLog(nil,'FormShow','FStateProtection 1'); А вот этой строчки в логе нет
 {$ENDIF}


Добавлю еще, что происходит это не сразу. Какое-то время(от минут до часов) программа работает нормально, а потом выше описанное. Перезапуск программы восстанавливает норму. Причем программа на этом объекте работает уже больше года, а такая засада началась только на днях.


umbra   (2005-12-08 18:25:00) [6]

ошибка скорее всего в вашем коде. Похоже, что TCustomForm.GetMonitorвернул nil, т.е мониторы в системе не обнаружены


Johnmen   (2005-12-08 18:25:00) [7]

А можно код увидеть?


Наверх

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