Page 9 of 18
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Thu Aug 18, 2011 4:40 pm
by maximYCH
: /* разработчик тихо потирает руки: пора заканчивать пить сок и идти пилить свой менеджер обновлений, т.е. стремиться к полезным результатам */
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Thu Aug 18, 2011 4:52 pm
by Mario
Тостер - не разработчик, но уже ближе.
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Thu Aug 18, 2011 9:58 pm
by Mario
SVN r.2063 - MAGNIFY, проверка окна на "свернутость" (rolled up) перед отрисовкой.
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Mon Oct 03, 2011 11:38 pm
by mike.dld
KFAR has 2 defects (at least for me):
1. it crashes if I'm trying to edit file of zero size
2. it doesn't update panels after editing is completed, so old file size is displayed
For the 1st defect, crash log is
Code: Select all
K : Process - forced terminate PID: 00000027
K : Page fault
K : EAX : FFFFF01B EBX : 0005D9E4 ECX : 000003F9
K : EDX : 00000FE4 ESI : 0005D9E4 EDI : 0006200C
K : EBP : 0005C000 EIP : 0000387E ESP : 0002B770
K : Flags : 00011206 CS : 0000001B (application)
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Fri Oct 07, 2011 8:43 pm
by Leency
Очень интересная вещь.
Я решил переделать Flood-it в игрушку Clicks. До этого рисовались цветные квадратики. Сейчас вместо них должны рисоваться кнопочки. Делаю так:
Code: Select all
//DrawBar(j*BLOCK_SIZE+USER_PANEL_WIDTH, i*BLOCK_SIZE+5, BLOCK_SIZE,BLOCK_SIZE, FIELD_COLORS[color_id]);
DefineButton(j*BLOCK_SIZE+USER_PANEL_WIDTH,i*BLOCK_SIZE+5,BLOCK_SIZE,BLOCK_SIZE, i*BLOCKS_NUM+j+100,FIELD_COLORS[color_id]);
И тут обнаруживаю, что нарисованные кнопки на 1 пиксель больше, квадратиков, которые до этого рисовались!
Почему?
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Fri Oct 07, 2011 8:51 pm
by SoUrcerer
А ты можешь сделать скриншоты, чтобы замерить размеры по точкам?
Судя по коду, который ты дал,
Code: Select all
void DrawBar(dword x,y,w,h,EDX)
{
EAX = 13;
EBX = x<<16+w;
ECX = y<<16+h;
$int 0x40
}
void DefineButton(dword x,y,w,h,EDX,ESI)
{
EAX = 8;
EBX = x<<16+w;
ECX = y<<16+h;
$int 0x40
}
И значит, размеры должны совпадать.
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Fri Oct 07, 2011 8:56 pm
by Leency
Должны, а не совпадают. Кнопки на 1 пиксель больше в ширину и длинну.
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Fri Oct 07, 2011 8:58 pm
by Albom
А если установить плоский тип кнопок? (а не 3d, который по умолчанию)
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Fri Oct 07, 2011 9:01 pm
by Leency
Тоже самое.
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Sat Oct 08, 2011 12:39 am
by Rock_maniak_forever
Это давно так, ещё помойму с Менуета осталось. Линии. кнопки, окна и что-то ещё, на 1 пиксель больше рисуются, по оси х и у. Почему так, думаю только Вилле знает.
Posted: Tue Nov 15, 2011 11:03 pm
by 0CodErr
В чём может быть причина «Page fault»?
На ядре 1319 всё нормально. А вот в 2306 и 2307 — такая ошибка. Моё приложение вылетает сразу после отрисовки окна.
Программа отображает увеличенный участок экрана под указателем мыши и показывает RGB-цвет точки.
Скриншот её тут:
viewtopic.php?p=38800#p38800
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Tue Nov 15, 2011 11:20 pm
by Mario
Скилл "telepathy" приветствуется.
Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Tue Nov 15, 2011 11:24 pm
by mike.dld
Code: Select all
Vesa20_getpixel32:
imul ebx, [BytesPerScanLine] ; ebx = y * y multiplier
lea edi, [ebx+eax*4]; edi = x*4+(y*y multiplier)
mov ecx, [LFB_BASE+edi] ; <--- crash here, `LFB_BASE+edi` points below LFB area due to overflow
and ecx, 0xffffff
ret
EBX contains illegal value in the first place.
Posted: Wed Nov 16, 2011 1:32 am
by 0CodErr
mike.dld
я так понимаю, что эта функция getpixel была изменена в новых версиях ядра.
Раньше, если подвести указатель к краю экрана, то программа отображала кусочек с противоположного края.
Теперь на новых версиях ядра это свойство программы сохранилось только для горизонтального направления.
Если опустить указатель вниз, то кусочек сверху не отобразится — вместо него чернота.
Если же поднять указатель наверх — программа вылетает.
И вот что ещё заметил:
при перемещении окна за заголовок отображается инверсный прямоугольник, так вот,
если во время перемещения процесс умирает(как у меня) — прямоугольник всё ещё остаётся и при этом может оставить артефакт на окне другого приложения.

Re: Сообщения об ошибках не помещенные в Bugzilla
Posted: Wed Nov 16, 2011 11:59 am
by art_zh
mike.dld
That code was always working well, nothing changed -- maybe something damages [BytesPerScanLine] ?
What screendriver is used? Emulator?