Устранение неполадок
Если у вас возникли проблемы с OpenShot, такие как зависание, сбой или сообщение об ошибке, существует множество различных методов, которые могут помочь в их устранении.
Windows 11 не отвечает
Если на Windows 11 происходит зависание, это известная проблема с PyQt5 и Windows 11, связанная с функциями доступности в Qt. Она возникает при нажатии Ctrl+C в OpenShot (только на Windows 11). OpenShot перестанет отвечать, и при этом возникает утечка памяти (чем дольше OpenShot не отвечает, тем больше утечка памяти, пока OpenShot не завершится аварийно или пользователь не завершит процесс).
Простое решение — избегать использования Ctrl+C на Windows 11 и вместо этого использовать контекстное меню копирования/вставки. Другой способ — переназначить «Копировать» с Ctrl+C на другую комбинацию, например Alt+C. Вы можете изменить настройки клавиатуры в настройках OpenShot. См. Клавиатура.
Отладка Windows с помощью GDB
Если у вас происходит сбой или зависание OpenShot на Windows 10/11, следующие пошаговые инструкции помогут определить причину сбоя. Эти инструкции покажут стек вызовов исходного кода OpenShot в месте сбоя. Эта информация очень полезна для нашей команды разработчиков и полезна для прикрепления к отчетам об ошибках (для более быстрого решения).
Установите последнюю ежедневную сборку
Перед подключением отладчика загрузите последнюю версию OpenShot: https://www.openshot.org/download#daily. Установите эту версию OpenShot в папку по умолчанию: C:\Program Files\OpenShot Video Editor\. Подробные инструкции по отладке OpenShot на Windows смотрите в этой вики.
Установите MSYS2
Версия OpenShot для Windows скомпилирована с использованием среды MSYS2. Чтобы подключить отладчик GDB к нашему исполняемому файлу openshot-qt.exe, сначала необходимо установить MSYS2. Этот шаг требуется выполнить только один раз.
Скачайте и установите MSYS2: http://www.msys2.org/
Запустите командную строку
MSYS2 MinGW x64(например:C:\msys64\msys2_shell.cmd -mingw64)Обновите все пакеты (Скопируйте/вставьте следующую команду):
pacman -SyuУстановите отладчик GDB (Скопируйте/вставьте следующую команду):
pacman -S --needed --disable-download-timeout mingw-w64-x86_64-toolchain
Запустите OpenShot с отладчиком GDB
Запустите командную строку MSYS2 MinGW x64 (например: C:\msys64\msys2_shell.cmd -mingw64)
Обновите PATH (Скопируйте/вставьте следующие команды):
export PATH="/c/Program Files/OpenShot Video Editor/lib:$PATH"
export PATH="/c/Program Files/OpenShot Video Editor/lib/PyQt5:$PATH"
Загрузите OpenShot в отладчик GDB (Скопируйте/вставьте следующие команды):
cd "/c/Program Files/OpenShot Video Editor"/
gdb openshot-qt.exe
Запустите OpenShot из приглашения GDB (Скопируйте/вставьте следующую команду):
run --debug
Вывести отладочную информацию
После успешного запуска OpenShot с подключенным GDB, вам нужно вызвать сбой или зависание в OpenShot. Когда произойдет сбой, переключитесь обратно в терминал MSYS2 MinGW64 и выполните одну из следующих команд (введите команду и нажмите ENTER). Обычно первой вводится команда bt, что означает backtrace. Ниже приведены другие команды.
(gdb) run (launch openshot-qt.exe)
(gdb) CTRL + C (to manually break out OR wait for a crash / segmentation fault)
(gdb) bt (Print stack trace for the current thread #)
(gdb) info threads (to view all threads, and what they are doing. Look for `__lll_lock_wait` for Mutex/deadlocks)
(gdb) thread 35 (Switch to thread number, for example thread 35)