LuaMacro — падение при сочетании факторов

Здесь можно сообщить о найденных багах в Far.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

LuaMacro — падение при сочетании факторов

Post by ccaid »

Latest post of the previous page:

новый комплект факторов
Win 10 x64
Far Manager v3.0 build 4972 x64
MoreHistory — История папок и плагинов
Калькулятор
из плагинов достаточно LuaMacro
вызываем Калькулятор, вводим log10(0)
Far молча схлопывается
Фар делают добрые люди
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaMacro — падение при сочетании факторов

Post by Shmuel »

ccaid, даже не надо калькулятора, достаточно с комстроки исполнить lua:math.log10(0).
Честно говоря, на данный момент у меня нет решения.
_control87(_MCW_EM,_MCW_EM) почему-то в этом случае не защищает.

Добавлено:
Можете поместить на баг-трекер.
Last edited by Shmuel on Fri 09 Jun, 2017 16:18, edited 1 time in total.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

LuaMacro — падение при сочетании факторов

Post by ccaid »

Фар делают добрые люди
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

LuaMacro — падение при сочетании факторов

Post by ccaid »

и ещё
Windows 10 x64, Windows 7 x64
Far30b4973.x86.20170613.7z
EdtFind
IncSearch


с некоторой вероятностью при выходе из Far (по F10) происходит падение с выводом сообщения об ошибке в окно консоли, типа:


Far30b4973.x64.20170613.7z
на платформе x64 тоже самое, только выхлоп побогаче:


для падения обычно достаточно после запуска Far сразу нажать F10 Enter, но процесс вероятностный, иногда нужно повторить попытку или походить по папкам перед выходом
обнаружено и ректифицировано было под Win10, под Win7 с лёгкостью повторилось
Фар делают добрые люди
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaMacro — падение при сочетании факторов

Post by Shmuel »

ccaid, я конечно попробую это поправить, хотя полной уверенности нет, что получится. Если не получится - то рекомендация будет такая: либо оставлять LuaMacro (и прочие LuaFAR-плагины), либо EdtFind (и прочие Pascal-плагины).
Паскалевские плагины включают разрешение исключений плавающей точки для всего процесса Far, то есть ведут себя так, как будто кроме них больше ничего нет.
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

LuaMacro — падение при сочетании факторов

Post by 2useven10 »

Когда исключение возникает при вычислении логарифма от 0 - это понятно.
А здесь откуда?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

LuaMacro — падение при сочетании факторов

Post by DrKnS »

ccaid wrote: Wed 21 Jun, 2017 07:43Editor.SetTitle("")
Хочу напомнить, что ExitFAR - это, в общем случае, "деструктор", вызываемый или когда плагин уже всё, или когда весь фар уже всё.
Там можно освобождать память, закрывать файлы и т. п., но вызывать API крайне не рекомендуется.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaMacro — падение при сочетании факторов

Post by Shmuel »

DrKnS прав: при перезагрузке макросов LuaMacro также вызывает событие ExitFAR, но падения не происходит (по крайней мере мне не удалось его вызвать перезагрузкой макросов).
Поэтому рекомендация простая: не вызывайте Far и Macro API в обработчике ExitFAR.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

LuaMacro — падение при сочетании факторов

Post by ccaid »

Shmuel wrote: Wed 21 Jun, 2017 12:36при перезагрузке макросов LuaMacro также вызывает событие ExitFAR
именно это мне и нужно. разведите эти события или научите как их развести внутри обработчика.
Фар делают добрые люди
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaMacro — падение при сочетании факторов

Post by Shmuel »

Сделаю, поместите виш на мантис.
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

LuaMacro — падение при сочетании факторов

Post by 2useven10 »

ccaid, Когда-то давно я немного поправил фар в своей локальной копии, чтобы работало сохранение
состояния панелей при выходе (и восстановление при старте). Насколько помню - просто luamacro выгружается последним.
Эти изменения у меня жить не мешают, можете попробовать ваш макрос на этой версии.
Attachments
Far.exe.7z
(1.3 MiB) Downloaded 116 times
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaMacro — падение при сочетании факторов

Post by Shmuel »

2useven10, LuaMacro уже 4 года как выгружается последним (начиная от билда 3335).
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

LuaMacro — падение при сочетании факторов

Post by 2useven10 »

Shmuel, давно было - помню плохо. собственно вот все изменения (для транка):
Attachments
ExitFar.diff.7z
(1.22 KiB) Downloaded 118 times
Last edited by 2useven10 on Wed 21 Jun, 2017 16:00, edited 1 time in total.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaMacro — падение при сочетании факторов

Post by Shmuel »

2useven10, если изменения стоящие, что вам мешает их закоммитить? Если не уверены - можно открыть тему для обсуждения.
Конкретно мне - затруднительно сделать вывод по вашим диффам (много времени займёт).
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

LuaMacro — падение при сочетании факторов

Post by 2useven10 »

Изменения остались в статусе временных, потому как ожидалось, что будет сертифицированный фикс.
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

LuaMacro — падение при сочетании факторов

Post by 2useven10 »

У меня (с изменениями) макрос ccid падения не вызывает.
Уверен или нет - уже не помню, но я сними живу больше 3-х лет без проблем.
И да (напрягая память) целью изменений было вызвать lua ExitFARW пока все живы.
Post Reply

Return to “Глюки и баги”