:: Visual Foxpro, Foxpro for DOS
"Подвисание" фоксового экзешника
Божья_коровка
Автор

Сообщений: 25720
Дата регистрации: 23.08.2001
Такая ситуация. При определённых действиях юзера приложение "подвисает" при выходе. Визуально закрывается, но экзешник видно что работает и что то делает, в диспетчере задач висит и жрёт память, немного конечно, но жрет и "закрываться" не хочет. У меня подобная ситуация не эмулируются. Не могу я на своем рабочем компе таким образом "положить" приложение, чтобы оно не закрылось.

Можно ли как то понять, что происходит и что делает экзешник в это время? Т.к. у меня VFP8, то SET COVERAGE не помогает.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 1 раз(а). Последнее : Божья_коровка, 11.12.18 18:28
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
_vit

Сообщений: 5173
Дата регистрации: 29.07.2002
Посмотри processmonitor-ом

technet.microsoft.com

Может что нибудь будет видно
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
А с ораклом сия прога часом не работает?


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Божья_коровка
Автор

Сообщений: 25720
Дата регистрации: 23.08.2001
Igor Korolyov
А с ораклом сия прога часом не работает?
Часом с ним родимым Первое, что посмотрела при выходе, при зависании это сессию в v$session. Но она снимается, дисконнект срабатывает при выходе.

В общем нашла я место которое вызывало подобный баг. Вопрос снимается, проблема вроде решена.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 1 раз(а). Последнее : Божья_коровка, 12.12.18 13:29
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Божья_коровка
В общем нашла я место которое вызывало подобный баг. Вопрос снимается, проблема вроде решена.

А компот? :al: В смысле рассказ о найденном решении.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Божья_коровка
Автор

Сообщений: 25720
Дата регистрации: 23.08.2001
Crispy
Божья_коровка
В общем нашла я место которое вызывало подобный баг. Вопрос снимается, проблема вроде решена.

А компот? :al: В смысле рассказ о найденном решении.
всё то вам расскажи. В общем с помощью дедуктивного метода я сузила поиск и нашла место которое вызвало у меня подозрение.
был вызов процедуры причём фоксовой, прописан вот так =имя процедуры () (для меня привычнее do имя процедуры), в "процедурном файлике" было PROCEDURE имя (), внутри был запрос с непонятной для меня функцией которую я не смогла найти в проекте. Я чуток переписала, то что показалось для меня немного непривычным и баг пропал.


PS: Еще хотела поинтересоваться у умных людей по поводу подключаемых библиотек в фоксе. Если деклирешь библиотеку насколько критично потом делать CLEAR DLLS? Какие критические последствия могут возникнуть если не делать при выходе из приложения CLEAR DLLS?


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 1 раз(а). Последнее : Божья_коровка, 12.12.18 14:32
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Божья_коровка
Я чуток переписала, то что показалось для меня немного непривычным и баг пропал.

Как сказал бы Симпла: "Привычка свыше нам дана".


Божья_коровка
Если деклирешь библиотеку насколько критично потом делать CLEAR DLLS? Какие критические последствия могут возникнуть если не делать при выходе из приложения CLEAR DLLS?

QUIT очищает все земные грехи открытые библиотеки. [attachment 30406 ppl_pop.gif]


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
QUIT forever!.. [sm128]
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Божья_коровка
Автор

Сообщений: 25720
Дата регистрации: 23.08.2001
Криспа, я спрашивала не про Quit. Вот представь нет его. Библиотеки задекларированы, но при выходе не сделан CLEAR DLLS, чем это чревато?


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Ничем.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Божья_коровка
Автор

Сообщений: 25720
Дата регистрации: 23.08.2001
PaulWist
Ничем.
Вообще ничем? Зачем же тогда люди делают Clear Dlls?


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Может быть, эти DLL какую-то память занимают? Или при повторном декларировании уже ранее задекларированного, но не очищенного, могут быть какие-нибудь нюансы?
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Божья_коровка
Автор

Сообщений: 25720
Дата регистрации: 23.08.2001
Simple777
Может быть, эти DLL какую-то память занимают? Или при повторном декларировании уже ранее задекларированного, но не очищенного, могут быть какие-нибудь нюансы?
Это мне вопрос? Я для того и спрашиваю, чем грозит не делать Clear Dlls, чтобы понять если ничем это не грозит то зачем тогда вообще народ это делает? Мне просто этот вопрос не совсем понятен. Вот к примеру у тебя деларируются блиотеки, юзаются, а при выходе из приложения не ставится Clear DlLs. Приложение закрывается. затем снова открывается и всё работоспособно никаких нюансов - нет. Библиотеки при старте приложения снова декларируются и всё работает. Для чего люди ставят Clear Dlls если никаких "конфликтов" и нюансов не происходит?

Вот и Пауль говорит, что ничем не чревато.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 1 раз(а). Последнее : Божья_коровка, 12.12.18 18:31
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
_vit

Сообщений: 5173
Дата регистрации: 29.07.2002
Божья_коровка
Для чего люди ставят Clear Dlls если никаких "конфликтов" и нюансов не происходит?

это нужно например:

- если у программы если есть функция автообновления заменяющая длл-ки.
после Declare Dll эта длл-ка не может быть удалена/переименована/перемещена/заменена пока все использующие ее процессы не освободят ее явно или неявно.

- При разработке самой Dll и отладке ее вызовом из фоксовской программы.
Хотя помнится что Clear Dlls не помогало и приходилось все равно фокс закрывать для того чтобы перекомпилировать проект Dll.

- не уверен но кажется бывало что при отладке, когда после завершения программы фокс не закрывается а просто управление возвращается в среду разработки, то при повторных запусках без Clear Dlls возникали ошибки вызова функций Dll.



Исправлено 1 раз(а). Последнее : _vit, 12.12.18 19:23
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Божья_коровка
Автор

Сообщений: 25720
Дата регистрации: 23.08.2001
_vit
- если у программы если есть функция автообновления заменяющая длл-ки.
после Declare Dll эта длл-ка не может быть удалена/переименована/перемещена/заменена пока все использующие ее процессы не освободят ее явно или неявно.
Сейчас запустила приложение фоксовое, задекларировалось куча библиотек. Я вязла и спокойно заменила одну из них...Т.е. скопировала из другой папки файл библиотеки которая была задекларирована в приложении, файл спокойно заменился.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
_vit

Сообщений: 5173
Дата регистрации: 29.07.2002
Функции длл-ки вызывались?
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
Божья_коровка
Автор

Сообщений: 25720
Дата регистрации: 23.08.2001
_vit
Функции длл-ки вызывались?
Нет функции не вызывались, поскольку был вопрос, для чего при выходе из приложения многие делают Clear Dlls. И какие критичные нюансы могут возникнуть если при выходе из приложения не сделать этого. Т.е. мне интересно, что бывает если при выходе из приложения не делать Clear Dlls. Не во время работы самого приложения, а именно когда приложение закрывается.

Что происходит когда деклиреться библиотека и что будет если не сделать Clear Dlls?


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 1 раз(а). Последнее : Божья_коровка, 12.12.18 19:58
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Когда декларится, то ничего не происходит, даже если такой функции в дллке физически нет.

Когда вызываешь длл-ку, то она выполняется, в рамках вызывающего процесса (фокса), а может и свой процесс создать (например запустить эксель), может дожидаться конца выполнения (т.е. может "зависнуть"), а может и нет (запустит эксель и вернет управление в фокс)

Когда CLEAR DLLS, то ничего особенного не происходит (как и при DECLARE), просто имя этой функции ДЛЛки "освобождается", т.е. при вызове итой функции фокс ругнется.

Вобщем эти DECLARE действуют безобидно (типа как EXTERNAL ARRAY имя), DECLARE связывают имя функции фокса с API ОС, просто пара имен, и интерфейс (типы параметров)

При выполнении QUIT фокс "делает" CLRAR DLLS автоматически, точнее, ничего не делает, т.к. в QUIT он не предполагает обращаться к задеклареным DLL-кам... Если фокс чего-то не "почистит", то ОС все равно затрет память, где находился фокс вместе с этими "DECLARE" не взирая на то, что там записано. Отрытые хендлы закроет как сможет. Это видно, когда убиваешь процесс фокса диспетчером задач - ничего не остается от этих DLL-ек.
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
_vit

Сообщений: 5173
Дата регистрации: 29.07.2002
Божья_коровка
_vit
Функции длл-ки вызывались?
Нет функции не вызывались, поскольку был вопрос, для чего при выходе из приложения многие делают Clear Dlls. И какие критичные нюансы могут возникнуть если при выходе из приложения не сделать этого. Т.е. мне интересно, что бывает если при выходе из приложения не делать Clear Dlls. Не во время работы самого приложения, а именно когда приложение закрывается.

Что происходит когда деклиреться библиотека и что будет если не сделать Clear Dlls?

Зачем декларировать Dll если не вызывать ее функций?
Ratings: 0 negative/0 positive
Re: "Подвисание" фоксового экзешника
_vit

Сообщений: 5173
Дата регистрации: 29.07.2002
of63
Когда CLEAR DLLS, то ничего особенного не происходит

Просто попробуй.;)

zlib.dll взял потому что просто первой попалась под руку.
можно взять любую дллку какая есть.


DECLARE string zlibVersion IN g:\vfp\it1\zlib.dll
LOCAL lcVer
WAIT "попробуйте удалить g:\vfp\it1\zlib.dll только верните его обратно" windows
lcVer = zlibVersion()
WAIT "а теперь ? :Р" windows
CLEAR DLLS
WAIT "Ну а теперь ? ;)" windows
return
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 20 akvvohinc  (Гостей: 19)

© 2000-2024 Fox Club 
Яндекс.Метрика