Docky

...
  • http://vk.com/topic-48924138_27963181?post=3094
    Ян Вильмовский wrote:Кстати, у Docky есть баг, воспроизводится так: открываешь окно; тащишь его на то место, где открывается Docky; сворачиваешь его кнопочкой в заголовке; вызываешь Docky; убираешь мышь, док исчезает, а свернутое до этого окно становится видимым.
    Ясное дело, док перерисовывает окна, которые коллизируют с ним в пространстве, но стоило бы проверять их статус на тот момент. Есть же у окон статус "свернуто"-"развернуто"?
    Воспроизвел, баг есть.
    Док перед тем как восстановить окно не проверяет его статус: свернуто/развернуто.
    Из хаоса в космос
  • Docky по-умолчанию выключен для ночных сборок.
    Он про прежнему висит в автозагрузке, но я добавил код, который смотрит в параметр attachement в ini, если он равен 0, то док не запускается.

    Таким образом, если вы включите док и перезагрузитесь он будет запущен без необходимости модифицировать autorun.dat.
    Из хаоса в космос
  • Я отрефакторил Docky и сделал изменение системных цветов на лету.
    Из хаоса в космос
  • Если это о @docky то:

    Code: Select all

    K : kernel SVN r9850
    ...
    L: /SYS/@DOCKY Param: 
    K : Process - forced terminate PID: 00000010 [@DOCKY]
    K : Page fault
    K : EAX : 00008000 EBX : 00008000 ECX : 00000000
    K : EDX : 70005FF0 ESI : 00000000 EDI : 00000000
    K : EBP : 000015BC EIP : 70008299 ESP : 00001568
    K : Flags : 00011206 CS : 0000001B (application)
    K : Stack dump:
    K : [ESP+00]: 00000001 [ESP+04]: 00000000 [ESP+08]: 00000000
    K : [ESP+12]: 0000023D [ESP+16]: 00000000 [ESP+20]: 00000000
    K : [ESP+24]: 00000000 [ESP+28]: 00000000 [ESP+32]: 00000000
    ...
    Edit1:
    А с K : kernel SVN r9185 всё работает нормально и программа не обновлялась - а это ещё хуже:
    значит проблемы в ядре (Edit : поспешное и неверное утверждение).
    Edit1: На самом деле обновлялась, и новая программа на старом дистрибутиве даёт Page Fault, но какая-то мистика ... (см. ниже)
    Last edited by Valery on Sat Sep 10, 2022 3:39 am, edited 1 time in total.
  • Судя по тому, что EIP начинается на 7, это больше похоже на ошибку в подключённой библиотеке.
  • Итак запустил новую docky на старом дистрибутиве:
    Downloaded 44 times

    Code: Select all

    K : Page fault
    K : EAX : 0000B000 EBX : 0000000C ECX : 00000000
    K : EDX : 00DDD7CF ESI : 00008000 EDI : 0000B000
    K : EBP : 000015F0 EIP : [b]00001032[/b] ESP : 000015DC
    docky.png
    docky.png (49.42 KiB)
    Viewed 4079 times
    Мистика в том, что я не могу найти строку кода на WebSVN ...
    Наиболее близкая <304.>:

    Code: Select all

        pop     edi
     
        cmp     byte[dock_items.separator + edi], 1
        jne     .end_separator
    Но это ведь не она, а больше ничего похожего не нашёл ...
  • docky.asm строка 601, макрос m2m из macros.inc

    EDIT: искать стоит по комбинации возле места падения, тогда шанс что поиск получится успешным больше

    Проблема скорее всего не в ядре, так как eip не ядерный и соответствует памяти приложения, для точности стоит наверное проверить весь код на работу с адресом который находится в edi, из за которого и происходит Page Fauil
  • docky.asm строка 601
    Да - это она, и если proc icon32cpy вызвана штатно (а не прилетели сюда ввиду потери управления), то
    - то ли len ;
    - то ли dest ;
    были заданы неправильно (и причём тут edi?)...

    Но я не об этом ... Завершив запланированный сбор анализов, приведу некоторый отчёт:
    Новая @docky
    на старых дистрибутивах (не только r9185, но и ещё раньше):
    (1)даёт Page Fault по адресу 0x1032 (строка 601), при этом до него проходит заметное время;
    Проверка разных конфигураций загрузки не проволилась: может всё же стоит?
    на последнем дистрибутиве (r.9872)
    (2) даёт Page Fault по адресу 0x70008299 (то есть - где-то в вызываемой библиотеке), причём это происходит сразу;
    (3) просто завершает исполнение, причём сразу;
    Поведение (2) наблюдается на "железе" и на QEMU с ускорением KVM (когда QEMU по возможности старается исполнять код на процессоре компьютера, а не на эмулируемом процессоре). Только один раз мне удалось обнаружить на QEMU с ускорением KVM поведение (3), но
    повторить не получилось (я как-то менял разрешение и битность экоана ...)
    Поведение (3) наблюдается на QEMU по умолчанию (когда используется эмуляция процессора).
    Похоже, что разрешение и битность экрана либо не влияют, либо влияют редко.
    Демонстрация поведения (3):
    https://drive.google.com/file/d/1NzeOd4 ... sp=sharing
    Лог:
    Downloaded 44 times
    Можно заметить, что старая docky на новом дистрибутиве запускается, но ведёт себя странно - значит что-то существенное изменилось в библиотеках(И / ИЛИ) в ядре.
    Следует также отметить, что новый дистрибутив на железе, и на QEMU с KVM загружается неустойчиво, причём поведение напоминает состояние гонки с зависанием (dead lock on spinlock) в некоторых случаях.

    Предварительные выводы:
    (1) есть большое подозрение о потере управления (несогласованность по стеку, ... );
    (2) конфигурация компьютера (причём как раз не параметры графики), как-то влияет на поведение docky
    (что вполне понятно, если программа "пробегает" по данным)
  • были заданы неправильно (и причём тут edi?)...
    вы же сами смотрели на чём падает, обратите внимание на регистры

    по поводу первого случая всё понятно, там возможно отсутствует проверка на наличие @reshare, по этому на старых версиях, где этого демона не было программа и падает
  • были заданы неправильно (и причём тут edi?)...
    вы же сами смотрели на чём падает, обратите внимание на регистры

    по поводу первого случая всё понятно, там возможно отсутствует проверка на наличие @reshare, по этому на старых версиях, где этого демона не было программа и падает
  • Следует также отметить, что новый дистрибутив на железе, и на QEMU с KVM загружается неустойчиво
    ну давайте ещё и вы скажите что после новых изменений ядра всё работает плохо. Если ВАМ надо то ВЫ и чините, у меня всё норм работает, ничего не знаю, а про те баги которые я знаю могу сказать одно, ядро в некоторых местах слеплено мягко говоря на скорую руку, причём не мной например, а теми кто был давно до меня. Берите, изучайте и меняйте.

    Ну и так, ядро и образ обновлять нужно, а не допотопные версии программ использовать
  • Doczom, извините меня пожалуста за фразу "(и причём тут edi?)." - я здесь был неоправданно резок .
    Надо было написать: "При более детальном рассмотрении похоже, что поиск по edi безпереспективен"
    после новых изменений ядра всё работает плохо
    Я не критикую, а просто отмечаю совпадение намекая на то,
    что возможно @docky у меня падает потому, что сама OS плохо работает (у меня)

    Да и ,Doczom,- спасибо за подсказку, я сам бы долго искал ...
  • ночью залил фикс этого бага, исправление не заключительное, так как там нужно ещё кое что проверить.
    По падению в библиотеке сегодня посмотрю.
    Ну и дополнительный баг на виртуалке, если сменить фокус на фон, а потом навести на док, при сворачивающемся доке, то переместить курсор в другое место, то есть вероятность что перерисовки фона не будет. это скорее всего баг ядра, то оконную подсистему и так менять
  • Я могу ошибаться, но похоже что @docky как раз и выводит систему из строя (на QEMU+KVM).
    А у Вас @docky может быть работает без проблем? Или тоже page fault?

    Edit:
    https://drive.google.com/file/d/1M9jaR_ ... sp=sharing
    А так ведёт при QEMU без KVM: что-то у @docky не ладится с @reshare ...
  • Who is online

    Users browsing this forum: No registered users and 3 guests