View Issue Details

IDProjectCategoryView StatusLast Update
0003485Far ManagerHelp/Languagepublic2017-09-11 20:51
ReporterJohnDoe Assigned ToDrKnS  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Fixed in Version3.0 
Summary0003485: Exception при попытке просмотра некорректного? hlf
DescriptionПример файла приложен.
Для воспроизведения можно запустить из командной строки одну из команд:

hlf:crash.hlf

bat

lua:far.ShowHelp[[C:\Apps\Far3\bugz\crash.hlf]]

bat
Steps To Reproduce
╔══════════════════════════ Exception occurred ══════════════════════════╗
║ Exception:   ?AVlength_error@std@@ -> std::exception: string too long) ║
║ Address:     0x74FD215A RaiseException                                 ║
║ Function:    ProcessEditorInputW                                       ║
║ Module:      C:\Apps\Far3\Plugins\HlfViewer\HlfViewer.dll              ║
╟────────────────────────────────────────────────────────────────────────╢
║          { Unload plugin } [ Stack ] [ Minidump ] [ Ignore ]           ║
╚════════════════════════════════════════════════════════════════════════╝
╔════════ Exception occurred ═════════╗
║ 0x74FD215A RaiseException           ║
║ 0x0123F079                          ║
║ 0x010E4613                          ║
║ 0x011B46E8                          ║
║ 0x011B1D52                          ║
║ 0x011B1CE8                          ║
║ 0x011B0110                          ║
║ 0x011DD623                          ║
║ 0x011039FE                          ║
║ 0x010FF561                          ║
║ 0x010FF16D                          ║
║ 0x0119543B                          ║
║ 0x01194D6F                          ║
║ 0x01194B7E                          ║
║ 0x0118F831                          ║
║ 0x01191D3D                          ║
║ 0x01191F6F                          ║
║ 0x0119209E                          ║
║ 0x01192112                          ║
║ 0x01192041                          ║
║ 0x0123D581                          ║
║ 0x76F94198 BaseThreadInitThunk      ║
║ 0x777A2CB1 LdrRemoveLoadAsDataTable ║
║ 0x777A2C7F LdrRemoveLoadAsDataTable ║
╟─────────────────────────────────────╢
║               { OK }                ║
╚═════════════════════════════════════╝
TagsNo tags attached.
Build5025

Activities

JohnDoe

2017-09-09 10:14

updater  

crash.hlf (218 bytes)

DrKnS

2017-09-09 10:17

administrator   bugnote:0015557

А какой смысл в стеке без символов?

JohnDoe

2017-09-09 10:28

updater   bugnote:0015558

Не разобрался.

Воспроизводится?

DrKnS

2017-09-09 10:29

administrator   bugnote:0015559

Нет.

JohnDoe

2017-09-09 10:31

updater   bugnote:0015560

"Некорректность" в том, что StartPosChar в первом столбце. Вероятно так нельзя, хоть нигде и не запрещается.

JohnDoe

2017-09-09 10:33

updater   bugnote:0015561

3.0.5024 x86 из ночных сборок на Windows 8.1.
Символы сейчас попробую исправить

JohnDoe

2017-09-09 10:41

updater   bugnote:0015562

Фар запущенный с единственным плагином HlfView
Exception occurred

0x74FD215A RaiseException
0x0031F079 __ExceptionPtr::_RethrowException (f:\dd\vctools\crt\crtw32\eh\excptptr.cpp:543)
0x0070E600
0x001C4613 RethrowIfNeeded (c:\src\unicode_far\exception.cpp:105)
0x002943B5 Plugin::ExecuteFunctionSeh<Plugin::ExecuteStruct<2,1>,OpenInfo * &> (c:\src\unicode_far\plclass.hpp:311)
0x00291AF2 seh_invoke<<lambda_d6c73f2f75cdca93351ed51dc9b00fdc>,<lambda_d029c28a9422eb7656079791eeef5fd7>,<lambda_5b5df76efdd64d2fd27a0f87bdb99e6d> > (c:\src\unicode_far\farexcpt.hpp:72)
0x00291A90 seh_invoke_with_ui<<lambda_d6c73f2f75cdca93351ed51dc9b00fdc>,<lambda_5b5df76efdd64d2fd27a0f87bdb99e6d> > (c:\src\unicode_far\farexcpt.hpp:91)
0x0029000C Plugin::Open (c:\src\unicode_far\plclass.cpp:878)
0x002BC337 PluginManager::Open (c:\src\unicode_far\plugins.cpp:2330)
0x002BB846 PluginManager::ProcessCommandLine (c:\src\unicode_far\plugins.cpp:2013)
0x001155C1 CommandLine::ExecString (c:\src\unicode_far\cmdline.cpp:1003)
0x0021C273 ProcessLocalFileTypes (c:\src\unicode_far\filetype.cpp:177)
0x001F7EE7 FileList::ProcessEnter (c:\src\unicode_far\filelist.cpp:2669)
0x001F74B4 FileList::ProcessKey (c:\src\unicode_far\filelist.cpp:1635)
0x00216A91 FilePanels::ProcessKey (c:\src\unicode_far\filepanels.cpp:835)
0x0027543B Manager::ProcessKey (c:\src\unicode_far\manager.cpp:789)
0x00274D6F Manager::ProcessMainLoop (c:\src\unicode_far\manager.cpp:620)
0x00274B7E Manager::EnterMainLoop (c:\src\unicode_far\manager.cpp:590)
0x0026F831 MainProcess (c:\src\unicode_far\main.cpp:291)
0x00271D3D mainImpl (c:\src\unicode_far\main.cpp:793)
0x00271F6F wmain_seh (c:\src\unicode_far\main.cpp:823)
0x0027209E <lambda_93e8a75ad0d6631789a8313e38bae319>::operator() (c:\src\unicode_far\main.cpp:851)
0x00272112 seh_invoke<<lambda_93e8a75ad0d6631789a8313e38bae319>,<lambda_eb6f9db54eb0b154dda06e08ba319848>,<lambda_b1c7d289a037a6c5b48976ae0d4fd300> > (c:\src\unicode_far\farexcpt.hpp:72)
0x00272041 main (c:\src\unicode_far\main.cpp:845)
0x0031D581 __scrt_common_main_seh (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253)
0x76F94198 BaseThreadInitThunk
0x777A2CB1 LdrRemoveLoadAsDataTable
0x777A2C7F LdrRemoveLoadAsDataTable

JohnDoe

2017-09-09 10:47

updater   bugnote:0015563

В фаре со всеми штатными плагинами падает на luamacro, и символы не подгружаются
Exception occurred

0x66F82542
0x66F945E0 lua_pcall
0x698C65D4 LF_LoadFile
0x0029E238 pluginapi::apiRecursiveSearch (c:\src\unicode_far\plugapi.cpp:2857)
0x0001004B
0x019638B8
0x02548D70
0x01949DF0
0x01948EF0
0x80028001
0x01010101
0x01010101
0x02010101
0x0A030302
0x0D0C030A
0x6E69010D
0x64657469
0x736F4C00
0x76450074 Ordinal844
0x00746E65
0x00461600 _tls_end

JohnDoe

2017-09-09 11:01

updater   bugnote:0015564

Добавил ^<wrap> в FarRus.hlf
@Help
$ # Far: как пользоваться помощью#
^<wrap>
...
Запустил фар без плагинов, нажал F1, открыл топик "Far: как пользоваться помощью".
После этого Exception
Exception occurred

0x74FD215A RaiseException
0x0031F079 __ExceptionPtr::_RethrowException (f:\dd\vctools\crt\crtw32\eh\excptptr.cpp:543)
0x00DCE8F8
0x001C4613 RethrowIfNeeded (c:\src\unicode_far\exception.cpp:105)
0x002946E8 Plugin::ExecuteFunctionSeh<Plugin::ExecuteStruct<23,1>,ProcessEditorInputInfo * &> (c:\src\unicode_far\plclass.hpp:311)
0x00291D52 seh_invoke<<lambda_2ad0a65ec7611f3419031180907097ff>,<lambda_60208c2b71916b63a5506271f0b18ed1>,<lambda_edd2c827a48ff5f260323d4f2b80dd42> > (c:\src\unicode_far\farexcpt.hpp:72)
0x00291CE8 Plugin::ExecuteFunction<Plugin::ExecuteStruct<23,1>,ProcessEditorInputInfo * &> (c:\src\unicode_far\plclass.hpp:326)
0x00290110 Plugin::ProcessEditorInput (c:\src\unicode_far\plclass.cpp:902)
0x002BD623 std::_Any_of_unchecked<std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tree_simple_types<Plugin *> >,std::_Iterator_base0>,<lambda_c4547d7c2876bdae7915013f69749007> > (c:\vc_current\include\algorithm:325)
0x001E39FE FileEditor::ProcessEditorInput (c:\src\unicode_far\fileedit.cpp:2233)
0x001DF561 FileEditor::ReProcessKey (c:\src\unicode_far\fileedit.cpp:944)
0x001DF16D FileEditor::ProcessKey (c:\src\unicode_far\fileedit.cpp:826)
0x0027543B Manager::ProcessKey (c:\src\unicode_far\manager.cpp:789)
0x00274D6F Manager::ProcessMainLoop (c:\src\unicode_far\manager.cpp:620)
0x00274B7E Manager::EnterMainLoop (c:\src\unicode_far\manager.cpp:590)
0x0026F831 MainProcess (c:\src\unicode_far\main.cpp:291)
0x00271D3D mainImpl (c:\src\unicode_far\main.cpp:793)
0x00271F6F wmain_seh (c:\src\unicode_far\main.cpp:823)
0x0027209E <lambda_93e8a75ad0d6631789a8313e38bae319>::operator() (c:\src\unicode_far\main.cpp:851)
0x00272112 seh_invoke<<lambda_93e8a75ad0d6631789a8313e38bae319>,<lambda_eb6f9db54eb0b154dda06e08ba319848>,<lambda_b1c7d289a037a6c5b48976ae0d4fd300> > (c:\src\unicode_far\farexcpt.hpp:72)
0x00272041 main (c:\src\unicode_far\main.cpp:845)
0x0031D581 __scrt_common_main_seh (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253)
0x76F94198 BaseThreadInitThunk
0x777A2CB1 LdrRemoveLoadAsDataTable
0x777A2C7F LdrRemoveLoadAsDataTable

DrKnS

2017-09-09 11:02

administrator   bugnote:0015565

Повторил, надо было окно меньшего размера.

JohnDoe

2017-09-09 13:32

updater   bugnote:0015566

Или строку подлиннее..

DrKnS

2017-09-09 17:35

administrator   bugnote:0015567

Как-то всё с этим StartPos было переусложнено, впрочем, как обычно.

5025 - проверьте, ничего ли не отвалилось.

JohnDoe

2017-09-10 09:01

updater   bugnote:0015568

Last edited: 2017-09-10 09:03

Порядок, закрываем (хотя стоп, вижу странное..).

Может заодно и это глянешь 0003481?

JohnDoe

2017-09-10 09:12

updater   bugnote:0015569

.Language=Russian,Russian (Русский)
.Options CtrlColorChar=\
.Options CtrlStartPosChar=^<wrap>

@Contents=Help
@Help
@= 
^<wrap>    В оглавлении справочной системы имеются ссылки (они функционируют примерно
так же, как и гиперссылки, знакомые каждому пользователю Интернет), которые
указывают на разделы с более подробной информацией.
    #*# ^<wrap>Для перемещения между ссылками вы можете использовать #Tab# и #Shift-Tab#.
Нажатие #Enter# вызовет страницу, соответствующую выбранной ссылке. Этот же
результат можно получить нажав кнопку "мыши" на требуемой ссылке.
Отображается как:
╔═════════════════════════════ Help - FAR ═════════════════════════════╗
║ ──────────────────────────────────────────────────────────────────── ║
║    В оглавлении справочной системы имеются ссылки (они функционируют ║
║ примерно так же, как и гиперссылки, знакомые каждому пользователю    ║
║ Интернет), которые указывают на разделы с более подробной            ║
║      информацией.                                                    ║
║    * Для перемещения между ссылками вы можете использовать Tab и     ║
║      Shift-Tab. Нажатие Enter вызовет страницу, соответствующую      ║
║      выбранной ссылке. Этот же результат можно получить нажав        ║
║      кнопку "мыши" на требуемой ссылке.                              ║
║                                                                      ║
Последняя строка первого абзаца почему-то выравнилась в позицию, заданную позже.

DrKnS

2017-09-10 09:21

administrator   bugnote:0015570

не повторяется.

JohnDoe

2017-09-10 09:26

updater   bugnote:0015571

Last edited: 2017-09-10 09:28

Уменьшай ширину пока не воспроизведётся.

На скрине первый абзац 4 строки, последняя строка это слово "информацией."
Если экран шире, то эффекта нет.

(а для другого hlf у начинает повторятся с более широкого экрана)

DrKnS

2017-09-10 09:28

administrator   bugnote:0015572

ну так я поставил 80, хелп той же ширины что и у тебя.

JohnDoe

2017-09-10 09:36

updater   bugnote:0015573

Last edited: 2017-09-10 09:37

А если уже.
За рамку потаскать.

╔═══════════ Help - FAR ═══════════╗
║ ──────────────────────────────── ▲
║    В оглавлении справочной       ▓
║ системы имеются ссылки (они      ▓
║ функционируют примерно так же,   ▓
║      как и гиперссылки,          ▓
║      знакомые каждому            ▓
║      пользователю Интернет),     ▓
║      которые указывают на        ▓
║      разделы с более подробной   ░
║      информацией.                ░
║    * Для перемещения между       ░
║      ссылками вы можете          ░
║      использовать Tab и          ░
║      Shift-Tab. Нажатие Enter    ▼
╚══════════════════════════════════╝

JohnDoe

2017-09-10 11:18

updater   bugnote:0015575

Проверил, проблема существовала и раньше, и с данным тикетом не связана.

DrKnS

2017-09-10 11:22

administrator   bugnote:0015576

Парсер хелпа - это цирк какой-то.

Твоя проблема из-за того, что оно _сначала_ читает следующую строку, находит там этот стартпос, пишет его в переменную, и аж потом обнаруживает "ой, а у нас же тут остаток предыдущей строки не добавлен, надо добавить, какой там у нас стартпос? А, вот какой!"

Чинить это бесполезно, это надо переписывать.

DrKnS

2017-09-11 20:51

administrator   bugnote:0015578

По второй проблеме - 5027.

Issue History

Date Modified Username Field Change
2017-09-09 10:14 JohnDoe New Issue
2017-09-09 10:14 JohnDoe File Added: crash.hlf
2017-09-09 10:17 DrKnS Note Added: 0015557
2017-09-09 10:28 JohnDoe Note Added: 0015558
2017-09-09 10:29 DrKnS Note Added: 0015559
2017-09-09 10:31 JohnDoe Note Added: 0015560
2017-09-09 10:33 JohnDoe Note Added: 0015561
2017-09-09 10:41 JohnDoe Note Added: 0015562
2017-09-09 10:47 JohnDoe Note Added: 0015563
2017-09-09 11:01 JohnDoe Note Added: 0015564
2017-09-09 11:02 DrKnS Note Added: 0015565
2017-09-09 13:32 JohnDoe Note Added: 0015566
2017-09-09 17:35 DrKnS Note Added: 0015567
2017-09-09 17:35 DrKnS Assigned To => DrKnS
2017-09-09 17:35 DrKnS Status new => feedback
2017-09-10 09:01 JohnDoe Note Added: 0015568
2017-09-10 09:01 JohnDoe Status feedback => assigned
2017-09-10 09:03 JohnDoe Note Edited: 0015568
2017-09-10 09:12 JohnDoe Note Added: 0015569
2017-09-10 09:21 DrKnS Note Added: 0015570
2017-09-10 09:26 JohnDoe Note Added: 0015571
2017-09-10 09:28 DrKnS Note Added: 0015572
2017-09-10 09:28 JohnDoe Note Edited: 0015571
2017-09-10 09:36 JohnDoe Note Added: 0015573
2017-09-10 09:37 JohnDoe Note Edited: 0015573
2017-09-10 11:18 JohnDoe Note Added: 0015575
2017-09-10 11:22 DrKnS Note Added: 0015576
2017-09-10 11:23 DrKnS Build => 5025
2017-09-10 11:23 DrKnS Status assigned => closed
2017-09-10 11:23 DrKnS Resolution open => fixed
2017-09-10 11:23 DrKnS Fixed in Version => 3.0
2017-09-11 20:51 DrKnS Note Added: 0015578