FIXED Последствия b5211 Git-569a54e21 x86/х64.
Closed this issue · 4 comments
Последствия b5211 Git-569a54e21 x86/х64.
Проверялось на b5210 Git-7a1c878cc, b5211 Git-569a54e21, b5218 Git-1f00d4746 для х96 и х64 редакций Far.
в b5210 Git-7a1c878ccВ ошибки ещё нет, а в b5211 Git-569a54e21 уже есть
Поскольку явления для х86 и х64 вариантов аналогичны, различия только в именах DLL и адресах памяти вызывавшей AV команды, протоколирование действий сделано для х64 т.к. явление было обнаружено там.
- Запускаем Far,
- вызываем LuaFar Search (LFS)
- в меню LuaFar Search F1
- Жмём ссылку "Маскам файлов" в справке и получаем системный диалог ошибки "Не удаётся найти ":FileMasks". Проверьте правильно ли указано имя и повторите попытку".
- нажимаем OK в данном сообщении.
- На фоне панелей видим сообщение об ошибке Far:
"Ошибка
Ошибка выполнения :FileMasks
Не удается найти указанный файл"
- Нажимаем ОК
- Видим окно справки LFS
- Жмём крест в правом верхнем углу окна консоли и получаем Access Violation (AV) в lfs::OpenW() :
на примере b5218 Git-1f00d4746:
Исключительная ситуация
Исключение: 0xC0000005 - EXCEPTION_ACCESS_VIOLATION
Подробности: Memory at 0000000000000000 could not be read
Адрес: 0x13F1BDCFC - Far.exe!
Источник:
Функция: OpenW
Модуль: .\Far\plugins\lfs\lfsearch_e-x64.dll
Стэк:
Исключительная ситуация
0x0013F2FDCFC Far.exe!
0x0013F2FC69C Far.exe!
0x0013F2FC4C6 Far.exe!
0x0013F2FBFF7 Far.exe!
0x0013F2F8C77 Far.exe!
0x0013F2FAFFF Far.exe!
0x0013F2DE53B Far.exe!
0x0013F2DE6ED Far.exe!
0x0013F2FAC7E Far.exe!
0x0013F2F950D Far.exe!
0x0013F2BF85B Far.exe!
0x0013F2BF4E7 Far.exe!
0x0013F20E1C4 Far.exe!
0x0013F2FB7A0 Far.exe!
0x0013F2FACF9 Far.exe!
0x0013F2F950D Far.exe!
0x0013F211C52 Far.exe!
0x0013F401F1B Far.exe!
0x0013F31D3B2 Far.exe!
0x7FEEC3DBDCF luafar3.dll!LF_LoadFile
0x00066D82CBE lua51.dll!
0x00066D93463 lua51.dll!lua_pcall
0x7FEEC3D0AE1 luafar3.dll!LF_SetFindList
0x7FEEC3D0C02 luafar3.dll!LF_SetFindList
0x7FEEC3CF515 luafar3.dll!LF_Open
0x0006E881AE6 lfsearch_e-x64.dll!OpenW
0x0013F2593BF Far.exe!
0x0013F25831D Far.exe!
0x0013F255581 Far.exe!
0x0013F341D35 Far.exe!
0x0013F3419D4 Far.exe!
0x0013F2E54BC Far.exe!
0x0013F2DD461 Far.exe!
0x0013F2DDB28 Far.exe!
0x0013F2DE6ED Far.exe!
0x0013F2FAC7E Far.exe!
0x0013F2FAB25 Far.exe!
0x0013F2F470A Far.exe!
0x0013F2F7505 Far.exe!
0x0013F2F76DB Far.exe!
0x0013F2F78B0 Far.exe!
0x0013F2F78DE Far.exe!
0x0013F2F786A Far.exe!
0x0013F409C59 Far.exe!
0x000777759CD kernel32.dll!BaseThreadInitThunk
0x000779AA561 ntdll.dll!RtlUserThreadStart
- причина lfs "находится в подвешенном состоянии" так в этот момент вызван его хелп, а там вдобавок ошибка с его разбором.
AV не возникнет если закрыть хелп дважды нажав ESC .
В b5219 Git-98b15fc9d ошибка сохранилась.
b5220 Git-95e529847 - URL в справке исправлен, AV оказалось независмым явлением которое наложилось на первое - http://forum.ru-board.com/topic.cgi?forum=5&topic=49572&start=540#11 .
При падении в отладчике видим:
b5221 Git-5bbac0e59, x64, debug
Операции: F11 -> ArcLite -> F1 -> закрыть окно фара крестиком.
Исключительная ситуация
Исключение: 0xC0000005 - EXCEPTION_ACCESS_VIOLATION
Подробности: Memory at 0000000000000000 could not be read
Адрес: 253dc0715ecbe422b6>::operator()<std::shared_ptr<window> >
Источник: .\fardev\far\manager.cpp:1045
Функция: main
Модуль: Far.exe
Стек:
Исключительная ситуация
0x140C1E2E9 Far.exe!<lambda_954f0acb0dd576253dc0715ecbe422b6>::operator()<std::shared_ptr<window> > (.\fardev\far\manager.cpp:1045)
0x140C230AB Far.exe!std::_For_each_unchecked<std::shared_ptr<window> * __ptr64,<lambda_954f0acb0dd576253dc0715ecbe422b6> > (c:\program files (x86)\microsoft visual studio 14.0\vc\include\algorithm:69)
0x140C32950 Far.exe!std::for_each<std::_Vector_iterator<std::_Vector_val<std::_Simple_types<std::shared_ptr<window> > > >,<lambda_954f0acb0dd576253dc0715ecbe422b6> > (c:\program files (x86)\microsoft visual studio 14.0\vc\include\algorithm:77)
0x140C46846 Far.exe!Manager::RefreshCommit (.\fardev\far\manager.cpp:1043)
0x140C3FC87 Far.exe!Manager::ActivateCommit (.\fardev\far\manager.cpp:1002)
0x140C1ED26 Far.exe!std::_Invoker_pmf_pointer::_Call<void (__cdecl Manager::*)(std::shared_ptr<window> const & __ptr64) __ptr64,Manager * __ptr64 const & __ptr64,std::shared_ptr<window> const & __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1342)
0x140C34242 Far.exe!std::invoke<void (__cdecl Manager::*const & __ptr64)(std::shared_ptr<window> const & __ptr64) __ptr64,Manager * __ptr64 const & __ptr64,std::shared_ptr<window> const & __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1445)
0x140C3EE73 Far.exe!<lambda_f95bdc5811ffa8ed6372159ecb3b34a2>::operator() (.\fardev\far\manager.cpp:264)
0x140C1EC9E Far.exe!std::_Invoker_functor::_Call<<lambda_f95bdc5811ffa8ed6372159ecb3b34a2> & __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1377)
0x140C3419E Far.exe!std::invoke<<lambda_f95bdc5811ffa8ed6372159ecb3b34a2> & __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1445)
0x140C26052 Far.exe!std::_Invoke_ret<void,<lambda_f95bdc5811ffa8ed6372159ecb3b34a2> & __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1462)
0x140C4B1B5 Far.exe!std::_Func_impl<<lambda_f95bdc5811ffa8ed6372159ecb3b34a2>,std::allocator<int>,void>::_Do_call (c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional:214)
0x140529AD9 Far.exe!std::_Func_class<void>::operator() (c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional:280)
0x140C40AFF Far.exe!Manager::Commit (.\fardev\far\manager.cpp:909)
0x140C422F7 Far.exe!Manager::ExitAll (.\fardev\far\manager.cpp:229)
0x140C427CE Far.exe!Manager::ExitMainLoop (.\fardev\far\manager.cpp:651)
0x140BB3456 Far.exe!GetInputRecordImpl (.\fardev\far\keyboard.cpp:861)
0x140BB2E7D Far.exe!GetInputRecord (.\fardev\far\keyboard.cpp:1061)
0x140C45F90 Far.exe!Manager::ProcessMainLoop (.\fardev\far\manager.cpp:607)
0x140C41F95 Far.exe!Manager::ExecuteModal (.\fardev\far\manager.cpp:352)
0x140B22CF8 Far.exe!Help::init (.\fardev\far\help.cpp:216)
0x140B220E4 Far.exe!Help::create (.\fardev\far\help.cpp:172)
0x140D227DF Far.exe!pluginapi::apiShowHelp (.\fardev\far\plugapi.cpp:407)
0x140DD4290 Far.exe!<lambda_563ca5deb1185852e1dd962119979bf9>::operator() (.\fardev\far\plugins.cpp:1470)
0x140DB17C0 Far.exe!std::_Invoker_functor::_Call<<lambda_563ca5deb1185852e1dd962119979bf9> & __ptr64,Manager::Key const & __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1377)
0x140DC7A70 Far.exe!std::invoke<<lambda_563ca5deb1185852e1dd962119979bf9> & __ptr64,Manager::Key const & __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1445)
0x140DB8CB4 Far.exe!std::_Invoke_ret<int,<lambda_563ca5deb1185852e1dd962119979bf9> & __ptr64,Manager::Key const & __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1469)
0x140DE7BE7 Far.exe!std::_Func_impl<<lambda_563ca5deb1185852e1dd962119979bf9>,std::allocator<int>,int,Manager::Key const & __ptr64>::_Do_call (c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional:214)
0x14082369B Far.exe!std::_Func_class<int,Manager::Key const & __ptr64>::operator() (c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional:280)
0x1410C655E Far.exe!<lambda_a70a8b3723194da516f34b0e5f9de127>::operator() (.\fardev\far\vmenu2.cpp:595)
0x1410BFC61 Far.exe!std::_Invoker_functor::_Call<<lambda_a70a8b3723194da516f34b0e5f9de127> & __ptr64,int,void * __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1377)
0x1410C4A22 Far.exe!std::invoke<<lambda_a70a8b3723194da516f34b0e5f9de127> & __ptr64,int,void * __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1445)
0x1410C0AA6 Far.exe!std::_Invoke_ret<int,<lambda_a70a8b3723194da516f34b0e5f9de127> & __ptr64,int,void * __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1469)
0x1410CA1B9 Far.exe!std::_Func_impl<<lambda_a70a8b3723194da516f34b0e5f9de127>,std::allocator<int>,int,int,void * __ptr64>::_Do_call (c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional:214)
0x1410C668C Far.exe!std::_Func_class<int,int,void * __ptr64>::operator() (c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional:280)
0x1410C6EB5 Far.exe!VMenu2::Call (.\fardev\far\vmenu2.cpp:185)
0x1410C965A Far.exe!VMenu2::VMenu2DlgProc (.\fardev\far\vmenu2.cpp:140)
0x1410C6449 Far.exe!<lambda_3fa6a01248cdf4ed94affb0a109a0e57>::operator() (.\fardev\far\vmenu2.cpp:349)
0x1410BFB96 Far.exe!std::_Invoker_functor::_Call<<lambda_3fa6a01248cdf4ed94affb0a109a0e57> & __ptr64,Dialog * __ptr64,__int64,__int64,void * __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1377)
0x1410C4963 Far.exe!std::invoke<<lambda_3fa6a01248cdf4ed94affb0a109a0e57> & __ptr64,Dialog * __ptr64,__int64,__int64,void * __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1445)
0x1410C0BA2 Far.exe!std::_Invoke_ret<__int64,<lambda_3fa6a01248cdf4ed94affb0a109a0e57> & __ptr64,Dialog * __ptr64,__int64,__int64,void * __ptr64> (c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits:1469)
0x1410CA0EC Far.exe!std::_Func_impl<<lambda_3fa6a01248cdf4ed94affb0a109a0e57>,std::allocator<int>,__int64,Dialog * __ptr64,__int64,__int64,void * __ptr64>::_Do_call (c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional:214)
0x14076ACBE Far.exe!std::_Func_class<__int64,Dialog * __ptr64,__int64,__int64,void * __ptr64>::operator() (c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional:280)
0x14076FE5D Far.exe!Dialog::DlgProc (.\fardev\far\dialog.cpp:4353)
0x140777D6A Far.exe!Dialog::ProcessKey (.\fardev\far\dialog.cpp:2494)
0x140C45BAA Far.exe!Manager::ProcessKey (.\fardev\far\manager.cpp:792)
0x140C46040 Far.exe!Manager::ProcessMainLoop (.\fardev\far\manager.cpp:623)
0x140C41F95 Far.exe!Manager::ExecuteModal (.\fardev\far\manager.cpp:352)
0x140775F9B Far.exe!Dialog::Process (.\fardev\far\dialog.cpp:4220)
0x1410C8864 Far.exe!VMenu2::RunEx (.\fardev\far\vmenu2.cpp:579)
0x1410C8781 Far.exe!VMenu2::Run (.\fardev\far\vmenu2.cpp:587)
0x140DD8D6D Far.exe!PluginManager::CommandsMenu (.\fardev\far\plugins.cpp:1457)
0x140C452DF Far.exe!Manager::PluginsMenu (.\fardev\far\manager.cpp:868)
0x140C4577B Far.exe!Manager::ProcessKey (.\fardev\far\manager.cpp:720)
0x140C46040 Far.exe!Manager::ProcessMainLoop (.\fardev\far\manager.cpp:623)
0x140C41D54 Far.exe!Manager::EnterMainLoop (.\fardev\far\manager.cpp:594)
0x140C144EB Far.exe!MainProcess (.\fardev\far\main.cpp:296)
0x140C19269 Far.exe!mainImpl (.\fardev\far\main.cpp:779)
0x140C19E63 Far.exe!wmain_seh (.\fardev\far\main.cpp:814)
0x140C121A8 Far.exe!<lambda_bacfb7072afe3b9f6d6c9539a3395e13>::operator() (.\fardev\far\main.cpp:856)
0x140C10FD0 Far.exe!seh_invoke<<lambda_bacfb7072afe3b9f6d6c9539a3395e13>,<lambda_6c672a149be573a9bad039caa0b0d034>,<lambda_01428290d7ebe490fd5aa4bbe9123049> > (.\fardev\far\farexcpt.hpp:74)
0x140C110A5 Far.exe!seh_invoke_with_ui<<lambda_bacfb7072afe3b9f6d6c9539a3395e13>,<lambda_01428290d7ebe490fd5aa4bbe9123049> > (.\fardev\far\farexcpt.hpp:97)
0x140C1A027 Far.exe!main (.\fardev\far\main.cpp:863)
0x14112A544 Far.exe!invoke_main (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:65)
0x14112A407 Far.exe!__scrt_common_main_seh (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253)
0x14112A2CE Far.exe!__scrt_common_main (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:296)
0x14112A569 Far.exe!mainCRTStartup (f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
0x0777759CD kernel32.dll!BaseThreadInitThunk
0x0779AA561 ntdll.dll!RtlUserThreadStart
Последний раз изменения в manager.cpp вносились 07.05.18 15:51 в b5209 Git-79c2158220 "clean up headers.hpp, part 3, M#0003605" :
где строка 62 :: #include "platform.fs.hpp" перенесена в строку 64. Иных изменений в данном файле Git не показал.
Исправлено в b5222 Git-ddfba0998