|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
Доброго дня! У меня огромный проект, начинал писать еще не я, я его только дорабатываю. Компилирован на Delphi 7. Стоит под виртуальной машиной на WinXP, до недавних времен (по январь 2021) работал прекрасно, затем начал выдавать ошибку 217 при старте программы. Раньше ставили на компьютеры W7, но с некоторых пор (после того как микромягкие прекратили поддержку, дрова идут только под W10). Проблема еще и в том, что у нас используются промышленные одноплатные компьютеры (Vortex, Capa), и альтернативы дров нет вообще никакой. После некоторого шаманства с W10, как правило, удается добиться, что программа начинает запускаться: ставлю на W10, дельфи и компоненты которые используются в проекте, после этого начинает работать, даже если посносить Delphi с компонентами %( Решил все же разобраться, прогнать запуск программы под дебагером. Перенес исходники запускаю программу на выполнение, прорисовывается окно программы и ...... windows уходит в шутдаун %( Проверяю построчно, создается порядка 30 окон или объектов (остальные создаются динамически, их там больше сотни), доходит до Application.Run, и после ее запуска - ложится. Если зайти дебагером в сам Run, там в непрерывном цикле крутится HandleMessage, и пока я дебажу по F8 устойчива, нажимаю F9 - шутдаун. Может кто знает, где поставить точку останова, чтобы отследить на чем все-таки валится программа. P.S. Если запускаю тот же проект, но скомпилированный под WinXP - все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 13:42 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
Ну возьми что-то более специализированное, типа той же EurekaLog ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 13:45 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
Спасибо за подсказку, только я с этим мастодонтом ни разу не работал. Куда она хоть логи-то пишет? Установил, в прект-менежер. Появился пункт EuricaLog Option, захожу - устанавливаю путь для лог-файлов. Галочка Activate EuricaLog установлена. Жму Ok, Проект запускается, система падает. Загружаюсь. Ни лога, ни пол-лога. А в инете, как назло много информации как отлавливать супер ошибки, а про то как просто настроить эту Euricу - ни слова %( ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 14:56 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
BorodaOleg, Почитай здесь https://habr.com/ru/post/209902/ НУ и когда найдешь место где падает возможные причины, когда работа зависит от окружения. Видимо качество проекта запущено. В таких случаях 1. Нужно делать код независимым от порядка инициализации модулей, - принудительно вызывать инициализацию которые должны загружаться раньше из тех, что загружаются позже. 2. Проверять работу с вкюченным Range Check. 3. Проверять c включенной и отключенной оптимизацией. С включенной - проверять что все переменные правильно инициализируются. 4. Проверять c подключенным FastMM и включенной опцией Chech Heap For Corruption - хорошо ищет плавающие ошибки работы с памятью. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 16:21 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 16:28 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
BorodaOleg А в инете, как назло много информации как отлавливать супер ошибки, а про то как просто настроить эту Euricу - ни слова %( Я не скажу, что документация по Эврике хороша, но вынужден признать, что до сих пор на любой возникавший у меня вопрос - находил в ней ответ без каких-то выдающихся усилий по поиску. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 16:38 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
BorodaOleg, Была похожая ситуация (217 ошибка) при закрытии приложения, причем проявлялась нестабильно. Дело было в секциях инициализации/финализации модулей. Решили, создав отдельные процедуры по инициализации/финализации и прописали их вызов в "ручном режиме" в строго определенном порядке... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 16:49 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
swame2, спасибо, раньше читал эту статью, сейчас прочитал более вдумчиво. Почему-то раньше думал, что она относится к финализации, сейчас понял что не так все просто. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 09:06 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
GunSmoker, если бы программа, Windows 10 уходит в шутдаун :( ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 09:08 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
softwarer, беда в том, что я с EurikaLog вообще никаких дел не имел... Сейчас нашел доку на англицком, так что вооружившись словарем грызу гранит науки. Как оказалась, там еще компоненту нужно ставить... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 09:36 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
DarkMaster, вот и у меня появляется не стабильно, точнее после установки Windows - стабильно выскакивает 217 ошибка, а после длительной мастербации этой самой Windows (в моем случае, эта установка Delphi, затем всех компонент и компиляция проекта) - стабильно НЕ выскакивает 217 ошибка, зато проект откомпилированный в данной среде стабильно валит систему на "Завершение работы". При этом тот не проект откомпилированный на WinXP - работает вполне себе успешно. И есть у меня подозрения что здесь не инициализация/финализация виноваты, а что-то иное. Сегодня нашел, что некогда на системе использовался ключ аппаратной защиты, потом его убрали, но модули до сих пор в проекте остались. Раньше о них не слуху не духу не было, а сейчас на стареньком файле (еще 2016 года компиляции, он самый стабильный) вдруг вылезает ссылка на этот ключ и программа закрывается. В общем карусель еще та... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 09:47 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
BorodaOleg и ...... windows уходит в шутдаун %( В обычный шутдаун (как при нажатии на "выключить компьютер") или BSOD? Что написано в EventLog? P.S. Если запускаю тот же проект, но скомпилированный под WinXP - все работает. Это странно - вероятно, у Вас стоят разные версии каких-то компонентов на разных машинах и/или сама D7 может быть разной. Для работы программа использует взаимодействие с каким-то нестандартным оборудованием или драйверами? Используются пакеты? Попробуйте в .dpr uses первым (или вторым) поставить SysUtils ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 10:13 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
В обычный шутдаун (как при нажатии на "выключить компьютер") или BSOD? Что написано в EventLog? Как при нажатии на "выключить компьютер", причем без всяких предупреждений. В EventLog 3 раза повторяется сообщение: Не удается найти описание для идентификатора события 1060 из источника Application Popup. Вызывающий данное событие компонент не установлен на этом локальном компьютере или поврежден. Установите или восстановите компонент на локальном компьютере. Если событие возникло на другом компьютере, возможно, потребуется сохранить отображаемые сведения вместе с событием. К событию были добавлены следующие сведения: \SystemRoot\SysWow64\Drivers\hwinterface.sys Ресурс сообщения существует, но сообщение не найдено в таблице сообщений А затем еще одно, о остановке журнала событий P.S. Если запускаю тот же проект, но скомпилированный под WinXP - все работает. Это странно - вероятно, у Вас стоят разные версии каких-то компонентов на разных машинах и/или сама D7 может быть разной. Сама Delphi ставилась из того же источника, из компонентов разница в версиях только в JCL/JVCL, но это весьма маловероятно, так как JVCL-ных компонент там штук с 20, да и то все используются в динамических формах, а до них дело не доходит. Для работы программа использует взаимодействие с каким-то нестандартным оборудованием или драйверами? Некогда на системе использовался ключ аппаратной защиты, потом его убрали, но модули до сих пор в проекте остались. Раньше о них не слуху не духу не было, а сейчас на стареньком файле (еще 2016 года компиляции, он самый стабильный) вдруг вылезает ссылка на этот ключ и программа закрывается. Используются пакеты? Что Вы имеете в виду? Попробуйте в .dpr uses первым (или вторым) поставить SysUtils Давно уже поставил, от 217 ошибки не спасает :( ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 12:34 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
авторПроверяю построчно, создается порядка 30 окон или объектов (остальные создаются динамически, их там больше сотни), доходит до Application.Run, и после ее запуска - ложится Отключите авто создание ТРИДЦАТИ форм. авторНекогда на системе использовался ключ аппаратной защиты, потом его убрали, но модули до сих пор в проекте остались Что мешает удалить их из проекта ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 12:51 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
BorodaOleg Сама Delphi ставилась из того же источника, из компонентов разница в версиях только в JCL/JVCL, но это весьма маловероятно, так как JVCL-ных компонент там штук с 20, да и то все используются в динамических формах, а до них дело не доходит. Я бы попробовал на каждой из машин (WinXP/Win10), на которых собирается программа, создать отдельный каталог для dcu, установил соотвествующий путь в настройках проекта и сделал билд, после этого сравнивал dcu файлы в этих каталогах - так можно найти модули, которые отличаются. Используются пакеты? Что Вы имеете в виду? Галка Build with runtime packages установлена? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 14:22 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
Отключите авто создание ТРИДЦАТИ форм. Окон там всего 5, остальное просто классы. При этом, я писал выше, автосоздание проходит успешно, что-то происходит после запуска Application.Run. Т.е. на этот момент все классы из статически создаваемых уже прошли конструктор Create, при этом система не рушиться. А вот дальше, возможно при создании какого-то динамического окна и происходит крах Windows. Что мешает удалить их из проекта ? Да ничего не мешает, просто про его существование я узнал только вчера вечером. До этого он сидел где-то на задворках и ни во что не вмешивался. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 15:16 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
Я бы попробовал на каждой из машин (WinXP/Win10), на которых собирается программа, создать отдельный каталог для dcu, установил соотвествующий путь в настройках проекта и сделал билд, после этого сравнивал dcu файлы в этих каталогах - так можно найти модули, которые отличаются. В общем, идея хорошая, только сейчас уже не успею, завтра изделие уезжает на место постоянной прописки, буду уже на следующем эксперементировать. Галка Build with runtime packages установлена? Нет, галочка не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 15:25 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
BorodaOlegКак при нажатии на "выключить компьютер", причем без всяких предупреждений. Это практически невозможно. Под обычным пользователем приложение запустить пытались? BorodaOlegВ EventLog 3 раза повторяется сообщение: А в разделе System? https://social.technet.microsoft.com/wiki/contents/articles/3564.event-id-1060-application-popup.aspx hwinterface.sys у вас явно не той системы. Грохните его: https://www.eightforums.com/threads/every-startup-eventlog-event-1060-application-popup.67126/ Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 15:30 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov BorodaOlegКак при нажатии на "выключить компьютер", причем без всяких предупреждений. Это практически невозможно. Под обычным пользователем приложение запустить пытались? Под самым обычным пользователем :) Могу на фотик видос снять, если не верите. Dimitry Sibiryakov BorodaOlegВ EventLog 3 раза повторяется сообщение: А в разделе System? https://social.technet.microsoft.com/wiki/contents/articles/3564.event-id-1060-application-popup.aspx hwinterface.sys у вас явно не той системы. Грохните его: https://www.eightforums.com/threads/every-startup-eventlog-event-1060-application-popup.67126/ Это как раз в разделе System. hwinterface.sys - грохнул. После перезапуска ошибок вообще никаких нет. Запустил свой софт - Windows грохнула. Сейчас гляну что в логе после рестарта. Оригинально. После 2-го ресета файл hwinterface.sys добросовестно восстановился сам по себе и теперь выдает ошибку... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 15:59 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
BorodaOlegОригинально. После 2-го ресета файл hwinterface.sys добросовестно восстановился сам по себе и теперь выдает ошибку... Это насколько же надо не знать ОС под которую пишете... Драйвера и прочие системные файлы самовосстанавливаются из бэкапа при простом удалении. Надо их сносить штатными процедурами (или и из бэкапа тоже). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 16:07 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Тут понимаете какая ситуация: Восстановление системы - отключено. Использование дискового пространства - 0 байт Может я действительно плохо знаю Win 10 (ну не люблю я ее), но вот чтобы файлы восстанавливались при отключённом восстановлении системы - это для меня нонсенс.... И если честно, как что-то снести из бэкапа, если он не пишется - я даже не в курсе %( ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 16:38 |
|
Что запускается после выполнения Application.Run?
|
|||
---|---|---|---|
#18+
Как я уже сказал: сначала надо сносить корень бед, названный по моим ссылкам: приблуду от Logix4u. Если это не удалось, то драйверу можно запретить загружаться в реестре. А если действительно решили снести его физически, то можно и погуглить с чем работает утилита sfc. https://docs.microsoft.com/en-us/windows/win32/wfp/windows-resource-protection-portal?redirectedfrom=MSDN Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 17:00 |
|
|
start [/forum/topic.php?fid=58&msg=40092721&tid=2037084]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
49ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 275ms |
total: | 443ms |
0 / 0 |