Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
GoogleCodeExporter opened this issue Dec 5, 2015 · 7 comments

Comments

@GoogleCodeExporter
Copy link


---

-- По 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
Copy link
Author

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

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

@GoogleCodeExporter
Copy link
Author

Путём анализа логов и эксперимента 
выяснил, что сбой вызывал плагин 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
Copy link
Author

Источник ошибки локализовал - что-то 
неудачно собирается в 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
Copy link
Author

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

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

@GoogleCodeExporter
Copy link
Author

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

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

@GoogleCodeExporter
Copy link
Author

На всякий случай (может это знание принесёт 
пользу? - вдруг где и вылезет ибо жизнь 
штука сложная) причину паники ядра я 
отыскал и устранил - её вызывал конфликт 
драйверов утилиты 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
Copy link
Author

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant