Запустил wmgui, нажал на кнопку connect и зажал на wiiremote 1+2 и нажал ok, программа зависла. Зависает на * thread #1, name = 'wmgui', stop reason = step over frame #0: 0x00007ffff7e89aaf libcwiid.so.1`cwiid_send_rpt(wiimote=0x0000555555737320, flags='\0', report='\x11', len=1, data=0x00007fffffffd6f7) at command.c:65:2 62 63 buf[0] = BT_TRANS_SET_REPORT | BT_PARAM_OUTPUT; 64 buf[1] = report; -> 65 memcpy(buf+2, data, len); 66 if (!(flags & CWIID_SEND_RPT_NO_RUMBLE)) {реп 67 buf[2] |= wiimote->state.rumble; 68 } видимо буфер переполняется
Шаги воспроизведения: 1. 2. 3. Ожидаемый результат - Все работает Фактический результат - Приложение зависает на моменте подключения Проведенный анализ - Проверили приложение при помощи lldb и debug версии пакета - Проставили брэкпоинты и нашли место после которого приложение не отвечает совсем - Во время исполнения 65 строчки происходит зависание ``` * thread #1, name = 'wmgui', stop reason = step over frame #0: 0x00007ffff7e89aaf libcwiid.so.1`cwiid_send_rpt(wiimote=0x0000555555737320, flags='\0', report='\x11', len=1, data=0x00007fffffffd6f7) at command.c:65:2 62 63 buf[0] = BT_TRANS_SET_REPORT | BT_PARAM_OUTPUT; 64 buf[1] = report; -> 65 memcpy(buf+2, data, len); 66 if (!(flags & CWIID_SEND_RPT_NO_RUMBLE)) {реп 67 buf[2] |= wiimote->state.rumble; 68 } ``
Код 15-летней давности. Можете прислать патч или обратитесь к текущим мейнтейнерам: https://github.com/abstrakraft/cwiid/issues