kapai69 / far-plugins

Automatically exported from code.google.com/p/far-plugins
0 stars 0 forks source link

Вопрос - что изменить в скрипте чтобы плагин под х64 не падал? #46

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago

---

-- По F11 вызываем PluMenu, по ShiftF11 зовём 
стандартное меню плагинов Far.
-- VictorVG @ VikSoft.Ru, v1.1, Thu Sep 25 00:00:16 +0300 2014

local PMID="AB9578B3-3107-4E28-BB00-3C13D47382AC"
local PMMID="FABF7469-F4EC-4BDE-9D27-21AE224B3BF8"
Macro {
  description="Advanced plugin menu"; area="Common"; key="F11"; action=function()
  if not Plugin.Call(PMID,0) then Keys("F11") end
  end;
}

Macro {
  description="Standard plugin menu"; area="Common"; key="ShiftF11"; action=function()
   Keys("F11")
  end;

---

Я пытался поменять вызов Plugin.Call на 
Plugin.Exist(PMID), но видно где-то возникает ошибка 
и плагин падает унося следом фар ь4233. Пока 
это вижу только для х64 семёрки. Хотелось бы 
понять в каком направлении искать решение 
задачи? Более старых сборок у меня под 
рукой нет - ОС только переставил, весь архив 
бэкапов ещё на серверах  и пока я сии бэкапы 
с сети скачаю...

Original issue reported on code.google.com by victorvg04 on 7 Jan 2015 at 10:51

GoogleCodeExporter commented 9 years ago
Ага, в если этот скрипт единственный и 
кроме PlugMenu в комплекте только плагины из 
ночнушки, то ничего не падает. Наверное я 
где-то ошибся при подборе тест-комплекта и 
кто-то 32-х битный али не совместимый с х64 
попал в тест кучу. Допаяю сгоревшую плату - 
сяду проверять. Как всегда коли много лет 
занимался ремонтом - у себя всё по принципу 
- "Сгорело? Где мой паяльник? Ща починим!".:) 

Original comment by victorvg04 on 7 Jan 2015 at 11:33

GoogleCodeExporter commented 9 years ago
Путём анализа логов и эксперимента 
выяснил, что сбой вызывал плагин FarHints v1.20 x64. 
У меня было подозрение на его модули, но их 
удаление по одному и последующая проверка 
не подтвердили данную гипотезу - вот 
выписка из лога ОС о причине сбоя:

Имя сбойного приложения: Far.exe, версия: 
3.0.4233.0, отметка времени: 0x54ac859a
Имя сбойного модуля: FarHints.dll, версия: 1.20.0.0, 
отметка времени 0x00000000
Код исключения: 0xc0000005
Смещение ошибки: 0x00000000000213a4
Идентификатор сбойного процесса: 0x1590
Время запуска сбойного приложения: 
0x01d02aca2f2e75c7
Путь сбойного приложения: C:\Program 
Files\Far3\Far\Far.exe
Путь сбойного модуля: C:\Program 
Files\Far3\Far\plugins\farhints\FarHints.dll
Код отчета: 8249ee91-96c7-11e4-a6f8-00158307ca3f

можно предположить что причина явления в 
конфликте планок памяти - в QVL и мануале 
платы указано, что Corsair TW3X4G1333C9D работают 
только если ставить комплект в слоты А1/В1 
(на эти планки много нарекани ибо их надо 
уметь настраивать по приборам), но я смог 
выставить рабочий режим ОЗУ:

Computer:      MSI MS-7513
CPU:           Intel Core 2 Duo E8500 (Wolfdale-H, E0)
               3166 MHz (9.50x333.3) @ 2004 MHz (6.00x334.1)
Motherboard:   MSI P45D3(MS-7513)
Chipset:       Intel P45 (Eaglelake-P) + ICH10R
Memory:        8192 MBytes @ 668 MHz, 9.0-9-9-24
               - 2048 MB PC10600 DDR3 SDRAM - Corsair CM3X2G1333C9D
               - 2048 MB PC10600 DDR3 SDRAM - Micron Tech. 16JTF25664AZ-1G4G1
               - 2048 MB PC10600 DDR3 SDRAM - Corsair CM3X2G1333C9D
               - 2048 MB PC10600 DDR3 SDRAM - Micron Tech. 16JTF25664AZ-1G4G1
Graphics:      MSI N650GTX (MS-V809)
               NVIDIA GeForce GTX 650, 1024 MB GDDR5 SDRAM
Drive:         ST32000645NS, 1953.5 GB, Serial ATA 6Gb/s @ 3Gb/s
Drive:         ST31000528AS, 976.8 GB, Serial ATA 3Gb/s
Drive:         ST3160815AS, 156.3 GB, Serial ATA 3Gb/s
Drive:         WDC WD2500AAJS-00B4A0, 244.2 GB, Serial ATA 3Gb/s
Drive:         ST1000LM025 HN-M101ABB, 976.8 GB, Serial ATA 3Gb/s @ 3Gb/s <-> 
USB
Drive:         PIONEER DVD-RW  DVR-221L, DVD+R DL
Sound:         Intel ICH10 - High Definition Audio Controller [A0]
Sound:         NVIDIA GK107 - High Definition Audio Controller
Network:       RealTek Semiconductor RTL8168C/8111C PCI-E Gigabit Ethernet 
Adapter
Controller:    Renesas µPD720201 USB 3.0 xHCI Controller    
OS:            Microsoft Windows 7 Ultimate (x64) Build 7601

и думаю, что вероятность аппаратных ошибок 
можно исключить - по приборам искажений 
сигнналов и сбоев временных диаграмм не 
наблюдается, потому передполагаю что 
явление носит программный характер и 
вызвано скорее всего не известной на 
момент разработки плагина причиной. Ну, 
лично я предпочитаю такую гипотезу 
событий. На всякий случай прикладываю 
вызвавший сбой плагин, но что любопытно - 
если в наборе нет PlugMenu.dll x64 то явление не 
воспроизводится, и потому я выдвигаю 
гипотезу что сбой происходит в момент 
опроса либой списка установленных 
плагинов. Прошу по возможности проверить 
правильность данного предположения. Для 
тестирования хватило ночнушки и пары 
плагинов PlugMenu v1.21 x64 b FarHints v1.20. У меня 
воспроизводимость явления 100%.

Original comment by victorvg04 on 8 Jan 2015 at 2:21

Attachments:

GoogleCodeExporter commented 9 years ago
Источник ошибки локализовал - что-то 
неудачно собирается в FPC - я брал архив у 
Игоря с форума Фар отсюда - 
http://forum.farmanager.com/viewtopic.php?p=116329#p116329 . Полистал 
ветку, подумал, взял сборку v1.20 с ПлагРинга 
в которой нет модуля текста - с ней ошибка 
не воспроизводится, но если в наборе 
появится FarHintsTexts.hll Far упадёт на старте. Как 
я понимаю компилятор "наоптимизировал" и 
бинарник банально портит память задачи. 
Сейчас данная гипотеза мне видится 
наиболее достоверной...

Original comment by victorvg04 on 9 Jan 2015 at 1:38

GoogleCodeExporter commented 9 years ago
Вынужденно переставил ОС - вылезли 
проблемы предположительно 
несовместимости модулей ОЗУ Corsair CM3X2G1333C9D и 
платы - пока увеличил тайминги до 10-9-9-24, но 
вероятно придётся эту пару менять - слишком 
частая паника ядра - пять случаев за день, а 
плохая совместимость данных планок с 
чипсетом Р45 штука известная...

Original comment by victorvg04 on 15 Jan 2015 at 5:40

GoogleCodeExporter commented 9 years ago
По своим наблюдениям заметил, что в FarHints у 
меня в плагине чудит модуль Folder - выводит 
неубирабщийся хинт и в итоге AV. Возможно 
что в нём возникает цепочка событий. 

Original comment by victorvg04 on 18 Jan 2015 at 12:23

GoogleCodeExporter commented 9 years ago
На всякий случай (может это знание принесёт 
пользу? - вдруг где и вылезет ибо жизнь 
штука сложная) причину паники ядра я 
отыскал и устранил - её вызывал конфликт 
драйверов утилиты MSI Green Power Center (GPC -она 
контролирует напряжения, температыры и 
частототы работы оборудования и у себя я её 
вытаскивал из дистрибутива идущей в 
комплекте матплаты утилиты Dual Core Center ибо 
отдельно она не поставляется с помощью Inno 
Setup Unpaker v0.40) и утилиты мониторинга HWiNFO64 - при 
первом же запуске GPC молча ставит свои 
драйвера помечая их как критические, и если 
есть иные читающие из SMB данные драйвера, то 
она не может их считать и выставляет 
запредельные рабочие частоты шин и памяти - 
в итоге машина не стартует, да и 
оборудование может сгореть. Решение тут 
простое - сброс CMOS, перенастройка BIOS, затем 
запуск ОС в безопасном режиме (VGA) и ручная 
чистка всех записей Реестра относящихся к 
данной утилите что не сложно т.к. пути к 
драйверам указывают на её каталог, а после 
просто стереть GPC и перезапустить ОС. Тогда 
все вызванные её сбои исчезают. У меня 
сейчас (тьфу-тьфу трижды сплюнуть через 
левое плечо :)) ОЗУ работает с таймингами 
9.0-9-9-24 CR=2 на тех же планках и машина не 
сбоит. Единственный вызывающий вопросы 
элемент только FarHits - хотелось бы 
использовать все его возможности, в том 
числе и текстоыве хинты ибо это удобно для 
просмиотра бумаг - видно стоит ли тратить 
на неё время, особенно коли она большая.

Original comment by victorvg04 on 19 Jan 2015 at 1:35

Attachments:

GoogleCodeExporter commented 9 years ago
Есть вероятность, что падения/зависания 
могут вызываться блокировкой БД поисковой 
индесацией в профиле фара - гипоза конечно, 
но я обратил внимание на то, что в тестовой 
куче где для ./Far/Profile/PluginsData/ стоит атрибут 
"неиндексируемый" FarHints никаких проблем 
вроде не вызывает, а в %PROGRAMFILES%\Far\Profile\PluginsData 
и в нескольких иных ветвях дерева с этим 
атрибутом у меня куча головной боли. Похоже 
поисковая индесация лочит файлы 
практически приводя к локальной DOS для файл 
менеджеров. Буду смотреть что у неё там 
сломалось и возможно решением будет 
вырубить сего демона.

Original comment by victorvg04 on 14 Feb 2015 at 9:31