View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001145 | Far Manager | FindFiles | public | 2009-10-30 08:05 | 2009-12-08 14:51 |
Reporter | lsa | Assigned To | chupakabra | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 2.0 | ||||
Fixed in Version | 2.0 | ||||
Summary | 0001145: Падение FAR при изменении размера Alt+F9 | ||||
Description | Выполняем поиск файлов по маске Alt+F7 По окончанию поиска видя список найденных файлов нажимаем Alt+F9 Far при этом виснет и закрывается. | ||||
Tags | No tags attached. | ||||
Build | 1223 | ||||
|
Не повторяется |
|
На сборке 1185 не повторяется. Если я не ошибаюсь, то что то такое правили вроде. |
|
Баг повторяется с того момента как изменили панельку результатов поиска (достаточно давно). Сейчас версия 1187. К сожалению не получается загрузить видео -rw-rw-rw- 1 lsa 0 1836425 2009-10-30 "10:36 30.10.2009 10-34-20.rar" Если кого интересует сообщите, отправлю по почте. Баг прикольный, сейчас более подробно посмотрел. Он повторяется при разрешении экрана 1600x1200 но не повторяется при 1280x1024. |
|
Экран 1920x1200. Far 1189 OS XP SP3 x86 не повторяется. без плагинов проверяй |
|
OS Windows 7 (UAC отключен) 1600x1200 Far 1188 x86 (текущий ночной билд) Удаление моего текудего Far, чистка реестра, распаковка архива, удаление папки Plugin, запуск. Проблема повторяется. Предположительно проблема не воспроизведентся в XP но воспроизведется в Vista. |
|
На Win7 не повторяется. Какие размеры окна фара до и после AltF9? |
|
Шрифт 10x18 Размер до ресайза 158x59 (ровно по границам экрана) Позиция на экране (0,0) Настройка этого через ярлык запуска. |
|
А FExcept что-то показывает? |
|
|
|
>> А FExcept что-то показывает? Добавлен FStd_trap.log [^] (6,276 bytes) 2009-10-30 16:12 |
|
Надо будет дебаг сборку дать ему чтоб лог был нормальный. И это, без плагинов проверял? |
|
Нет этот лог уже с настроенным Far и плагинами. |
|
Проверь без плагинов. |
|
|
|
FStd_trap_without_plugins.log [^] (6,276 bytes) 2009-10-30 16:37 добавил без плагинов |
|
Примечательно что У меня стоит 2 монитора 1. 1600x1200 - если на этом рабочем столе разворачиваешь то падает 2. 1280x1024 - не падает Далее после отключение маленького монитора, перезагрузки а все такое на 1600x1200 все равно падает. Попозже освобожусь - посмотрю под VMWare при разных разрешениях. |
|
Дебаговый билд 1189: http://www.mediafire.com/download.php?dzz5y2rytmm |
|
Вот, добавь лог fexcept используя версию фара что выложил Денис. |
|
Этот билд не падает. |
|
Мой билд был не совсем чистый - был применён маленький патч отсюда (второй) и собран 10кой: http://bugs.farmanager.com/view.php?id=1083 Вот чистый билд, собранный 9кой: http://www.mediafire.com/download.php?22zqqazuzc3 |
|
А собери ему 9кой релиз билд с твоим фиксом. Авось это оно. |
|
Релиз с фиксом из 1083: http://www.mediafire.com/download.php?wi3fygidmh2 |
|
Прошу прощения за молчание - не было доступа к компьютеру по поводу билдов: 1. "Вот чистый билд, собранный 9кой" - работает нормально 2. "Релиз с фиксом из 1083" - падает 3. 1192 x86 - падает |
|
|
|
Попробуй чистый дебаговый 1192 http://www.mediafire.com/download.php?tlbgmdej5zf и добавь сюда лог fexcept |
|
гм, эта сборка не падает странная закономерность - все указанные дебаговые сборки (3 штуки) не падали, падают только релизы |
|
Релизная версия с дебаг инфой: http://www.mediafire.com/download.php?0n30wqojzmq |
|
|
|
Упал. Соответственно FStd_trap [пост 0004433][Релизная версия с дебаг инфой].log [^] (6,621 bytes) 2009-11-02 10:11 |
|
В связи со странностью бага (возможно зависит от специфических условий, настройки OS и т.п.) сейчас ставлю Windows 7 (7600.16385.090713-1255_x86fre_client_en-us_OEM_Ultimate-GRMCULFREO_EN_DVD.iso) под VMWare За одно проверю зависимость от разрешения экрана. Предположительно дам информацию через час-полтора. |
|
А ты сам под дебагером запустить фар не можешь? |
|
Если расскажете что поставить нужно (софт и как проек из соурсконтрола втянуть) то смогу (ну + день/два соответствующий софт достать). На C/CPP я не писал с 2001 года примерно. Сайчас в основном Java. :-( |
|
Могу дать свои контакты чтобы не превращать в мусорку эту ветку |
|
|
|
|
|
|
|
|
|
Приблизительно закономерность найдена. Тестировалось на чистой Win7 + VMWare Tools под guest OS. Версия Far: Релизная версия с дебаг инфой: http://www.mediafire.com/download.php?0n30wqojzmq [^] Падение зависит от соотношения текущего разрешения экрана и размеров окна Far. На картинках показано что если размер Far подогнан по размеру под экран то падение происходит. Это верно для любого разрешения экрана. P.S. Возможно косвенно с этим связана старая неприятная фишка: если размер окна Far стоит более точно - координаты (-4, -4) размер подобран так чтобы на экране не было видно бордюров и при этом заблокировать компьютер (Win+L) то во возвращению в систему у окна Far появляются скроллеры (у просто CMD не проверял). |
|
Повторить получилось. А с проблемой Win-L это скорее всего не связано, то баг винды, она сама изменяет размер окна (можешь и с cmd это увидеть). Тут проблема вроде связана с перерисовкой диалога поиска. |
|
Вот стек: ntdll_77590000!RtlInitUnicodeString+0x196 ntdll_77590000!RtlFreeHeap+0x7e KERNEL32!HeapFree+0x14 Far!free(void * pBlock = 0x009de340)+0x1c [f:\dd\vctools\crt_bld\self_x86\crt\src\free.c @ 51] Far!xf_free(void * __block = 0x009de340)+0xc [d:\src\far\fardev\unicode_far\farrtl.cpp @ 72] Far!operator delete(void * ptr = 0x009de340)+0xc [d:\src\far\fardev\unicode_far\farrtl.cpp @ 116] Far!UnicodeStringData::FreeData(wchar_t * pData = 0x009de340 "")+0x1e [d:\src\far\fardev\unicode_far\unicodestring.hpp @ 62] Far!UnicodeStringData::~UnicodeStringData(void)+0x16 [d:\src\far\fardev\unicode_far\unicodestring.hpp @ 148] Far!UnicodeStringData::`scalar deleting destructor'(void)+0xf Far!UnicodeStringData::DecRef(void)+0x3d [d:\src\far\fardev\unicode_far\unicodestring.hpp @ 142] Far!UnicodeString::Replace(unsigned int Pos = 0, unsigned int Len = 0, wchar_t * Data = 0x00a17420 "Search done. Found 19 file(s) and 0 folder(s) ", unsigned int DataLen = 0xc4)+0x271 [d:\src\far\fardev\unicode_far\unicodestring.cpp @ 188] Far!UnicodeString::Copy(wchar_t * Str = 0x00a17420 "Search done. Found 19 file(s) and 0 folder(s) ", unsigned int StrLen = 0xc4)+0x22 [d:\src\far\fardev\unicode_far\unicodestring.cpp @ 265] Far!UnicodeString::Copy(class UnicodeString * Str = 0x009f078c)+0x21 [d:\src\far\fardev\unicode_far\unicodestring.cpp @ 270] Far!UnicodeString::operator=(class UnicodeString * strCopy = 0x009f078c)+0x13 [d:\src\far\fardev\unicode_far\unicodestring.hpp @ 245] Far!Dialog::ShowDialog(unsigned int ID = 0)+0x73d [d:\src\far\fardev\unicode_far\dialog.cpp @ 1836] Far!Dialog::DisplayObject(void)+0x42 [d:\src\far\fardev\unicode_far\dialog.cpp @ 614] Far!ScreenObject::Show(void)+0x3f [d:\src\far\fardev\unicode_far\scrobj.cpp @ 178] Far!Dialog::Show(void)+0xb3 [d:\src\far\fardev\unicode_far\dialog.cpp @ 588] Far!GetInputRecord(struct _INPUT_RECORD * rec = 0x009c53ac, bool ExcludeMacro = false, bool ProcessMouse = false)+0xc78 [d:\src\far\fardev\unicode_far\keyboard.cpp @ 1142] Far!Manager::ProcessMainLoop(void)+0x86 [d:\src\far\fardev\unicode_far\manager.cpp @ 620] Падает в ShowDialog вот тут: case DI_TEXT: { strStr = CurItem->strData; Пока идей нет никаких. |
|
А как повторить самому? |
|
Ну чисто как он описал, окно фара на (0,0), по ширине размер на весь экран но видно рамку окна, по высоте 25. |
|
На Multi-threaded (/MT) VS2008 стабильное повторение, на VS2010 всё работает. |
|
Думаю надо попробовать найти ревизию, начиная с которой начались падения. |
|
1064 - ok 1065 - падаем |
|
Ну у меня и 2010 падает точно также. Не думаю что баг компайлера. |
|
Ошибся(запускал не из среды). Падает. |
|
Denis, попробуй откатить обработчик DN_RESIZECONSOLE в findfile.cpp на состояние из build 1064 |
|
После отката перестало падать |
|
Теперь бы ещё понять где там корупция хипа. |
|
Denis попросил меня посмотреть где портится куча. Это происходит в Dialog::ShowDialog. При вычислении CW он получается равным -4. (Не знаю почему, не смотрел). Далее, при отработке case DI_SINGLEBOX: case DI_DOUBLEBOX: Есть такой код: // ! Пусть диалог сам заботится о ширине собственного заголовка. strStr = CurItem->strData; TruncStrFromEnd(strStr,CW-2); // 5 ??? В TruncStrFromEnd передается отрицательная MaxLength, которую TruncStrFromEnd конечно же, не проверяет. Это приводит к тому, что "Str[MaxLength]=0;" портит заголовок блока в куче, что, в свою очередь, обнаруживается когда удаляется этот блок. Такие вещи хорошо ловяться с помощью AppVerifier. Я бы крайне советовал гонять Far под ним время от времени. Кроме того, я бы посоветовал добавить проверки (хотя бы в отладочную версию) на корректность параметров функций, работающих со строками. В исходниках Far'а очень много мест в коде, манипулирующих со строками и такой код, как правило, - самый настоящий рассадник багов. |
|
alexeypa, попробуй разобраться до конца почему такое происходит. |
|
> alexeypa, попробуй разобраться до конца почему такое происходит. Я вообще-то уже написал, почему именно такое происходит. Отследить почему ширина получается отрицательной вроде бы не должно составлять проблемы. |
|
1223 |
|
Проверено на версии b1276 - проблема исправлена |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-10-30 08:05 | lsa | New Issue | |
2009-10-30 08:16 | Denis | Note Added: 0004378 | |
2009-10-30 08:18 | DiRTy_GaRRy | Note Added: 0004379 | |
2009-10-30 08:43 | lsa | Note Added: 0004380 | |
2009-10-30 09:38 | vskirdin | Note Added: 0004381 | |
2009-10-30 10:00 | lsa | Note Added: 0004383 | |
2009-10-30 10:03 | alexy | Note Added: 0004384 | |
2009-10-30 10:08 | lsa | Note Added: 0004385 | |
2009-10-30 15:05 | chupakabra | Note Added: 0004387 | |
2009-10-30 15:12 | lsa | File Added: FStd_trap.log | |
2009-10-30 15:13 | lsa | Note Added: 0004388 | |
2009-10-30 15:22 | alexy | Note Added: 0004389 | |
2009-10-30 15:34 | lsa | Note Added: 0004390 | |
2009-10-30 15:36 | alexy | Note Added: 0004391 | |
2009-10-30 15:37 | lsa | File Added: FStd_trap_without_plugins.log | |
2009-10-30 15:37 | lsa | Note Added: 0004392 | |
2009-10-30 15:41 | lsa | Note Added: 0004393 | |
2009-10-30 15:41 | Denis | Note Added: 0004394 | |
2009-10-30 15:46 | alexy | Note Added: 0004395 | |
2009-10-30 15:52 | lsa | Note Added: 0004396 | |
2009-10-30 15:59 | Denis | Note Added: 0004397 | |
2009-10-30 16:07 | alexy | Note Added: 0004398 | |
2009-10-30 16:41 | Denis | Note Added: 0004399 | |
2009-11-02 08:18 | lsa | Note Added: 0004428 | |
2009-11-02 08:19 | lsa | File Added: FStd_trap (Релиз с фиксом из 1083).log | |
2009-11-02 08:52 | Denis | Note Added: 0004431 | |
2009-11-02 09:02 | lsa | Note Added: 0004432 | |
2009-11-02 09:06 | Denis | Note Added: 0004433 | |
2009-11-02 09:11 | lsa | File Added: FStd_trap [пост 0004433][Релизная версия с дебаг инфой].log | |
2009-11-02 09:12 | lsa | Note Added: 0004434 | |
2009-11-02 09:21 | lsa | Note Added: 0004435 | |
2009-11-02 09:23 | alexy | Note Added: 0004436 | |
2009-11-02 09:29 | lsa | Note Added: 0004437 | |
2009-11-02 09:31 | lsa | Note Added: 0004438 | |
2009-11-02 10:39 | lsa | File Added: 001.gif | |
2009-11-02 10:39 | lsa | File Added: 002.gif | |
2009-11-02 10:39 | lsa | File Added: 003.gif | |
2009-11-02 10:40 | lsa | File Added: 004.gif | |
2009-11-02 10:47 | lsa | Note Added: 0004439 | |
2009-11-02 19:03 | alexy | Note Added: 0004457 | |
2009-11-02 21:53 | alexy | Note Added: 0004458 | |
2009-11-03 06:20 | Denis | Note Added: 0004459 | |
2009-11-03 06:40 | alexy | Note Added: 0004460 | |
2009-11-03 07:09 | Denis | Note Added: 0004462 | |
2009-11-03 07:16 | chupakabra | Note Added: 0004463 | |
2009-11-03 08:27 | Denis | Note Added: 0004464 | |
2009-11-03 08:43 | alexy | Note Added: 0004465 | |
2009-11-03 08:58 | Denis | Note Added: 0004466 | |
2009-11-03 09:09 | chupakabra | Note Added: 0004467 | |
2009-11-03 09:16 | Denis | Note Added: 0004468 | |
2009-11-03 09:16 | alexy | Note Added: 0004469 | |
2009-11-12 23:25 | alexeypa | Note Added: 0004530 | |
2009-11-13 10:44 | chupakabra | Note Added: 0004533 | |
2009-11-13 15:36 | alexeypa | Note Added: 0004543 | |
2009-11-20 18:22 | chupakabra | Status | new => assigned |
2009-11-20 18:22 | chupakabra | Assigned To | => chupakabra |
2009-11-20 19:17 | chupakabra | Note Added: 0004566 | |
2009-11-20 19:17 | chupakabra | Status | assigned => feedback |
2009-12-07 14:03 | lsa | Note Added: 0004688 | |
2009-12-07 14:03 | lsa | Status | feedback => resolved |
2009-12-08 14:51 | chupakabra | Build | => 1223 |
2009-12-08 14:51 | chupakabra | Status | resolved => closed |
2009-12-08 14:51 | chupakabra | Fixed in Version | => 2.0 |
2009-12-08 14:51 | chupakabra | Resolution | open => fixed |