Падает с диагностикой:
Если при том закомментировать строку №3 (╔═══════════════════════════════ Exception occurred ═══════════════════════════════╗ ║ Exception: 0xC0000005 - EXCEPTION_ACCESS_VIOLATION ║ ║ Details: Memory at 000001E4A4B60D90 could not be executed ║ ║ errno: 0x00000000 - No error ║ ║ LastError: 0x00000000 - Операция успешно завершена. ║ ║ NTSTATUS: 0xC0000008 - Указан неверный дескриптор. ║ ║ Address: 0x000001E4A4B60D90 - <unknown>!<unknown> (get the pdb) ║ ║ Function: OpenW ║ ║ Source: ║ ║ File: C:\Program Files\Far Manager\Plugins\LuaMacro\LuaMacro.dll ║ ║ Plugin: LuaMacro 3.0.761.0 (Far macros in Lua, Shmuel Zeigerman & Far Group) ║ ║ Far: 3.0.5778.0 x64 (56bbd78) ║ ║ OS: 10.0.19041.2.0.0.256.1 (version 2004, OS build 19041.867) ║ ║ Kernel: 10.0.19041.867 (WinBuild.160101.0800) ║ ╟──────────────────────────────────────────────────────────────────────────────────╢ ║ [ Copy ] [ Stack ] [ Minidump ] ║ ╟──────────────────────────────────────────────────────────────────────────────────╢ ║ { Terminate Far } [ Unload plugin ] [ Ignore ] ║ ╚══════════════════════════════════════════════════════════════════════════════════╝
, far.GetPluginInformation(plug1)
), то всё проходит нормально.Ещё одна странность: вот такой скрипт отрабатывает нормально: Я, честно говоря, думал, что плагин - хозяин панели и плагин, найденный по GUID-у панели - это один и тот же плагин , соответственно, хендлы у них одинаковые.
Вопросы.
(а) Хэндл какого плагина возвращается в поле
panel.GetPanelInfo(…).PluginHandle
?(б) Падение FAR-а с нехваткой памяти - это так и задумано? Или я что-то не то сделал?
(в) Если я что-то сделал не то, то как это исправить? Или занести поле PanelInfo.PluginHandle в чёрный список и запомнить, что им для доступа к плагину пользоваться нельзя?
P/S. Оффтопик о диагностике. Может, сразу сюда и ответите.
Я, вообще-то, pdb скачивал. С тех пор много раз обновился плагином Renewal. Мне кажется (возможно, я путаю), что поначалу он скачивал и pdb. И я не знаю, почему он "не подхватился". Судя по диагностике …