Rozwiązywanie problemów
Jeśli masz problem z OpenShot, taki jak zawieszenie, awaria lub komunikat o błędzie, istnieje wiele różnych technik, które mogą pomóc w rozwiązaniu problemu.
Brak reakcji Windows 11
Jeśli doświadczasz zawieszenia na Windows 11, jest to znany problem z PyQt5 i Windows 11, związany z funkcjami dostępności w Qt. Problem wywołuje naciśnięcie Ctrl+C w OpenShot (tylko na Windows 11). OpenShot przestaje reagować, a także występuje wyciek pamięci (im dłużej OpenShot nie reaguje, tym większy jest wyciek pamięci, aż do momentu awarii programu lub zakończenia procesu przez użytkownika).
Prostym obejściem jest unikanie używania Ctrl+C na Windows 11 i zamiast tego korzystanie z menu kopiowania/wklejania dostępnego po kliknięciu prawym przyciskiem myszy. Innym rozwiązaniem jest zmiana przypisania skrótu „Kopiuj” z Ctrl+C na inny, na przykład Alt+C. Możesz zmienić przypisania klawiszy w Preferencjach OpenShot. Zobacz Klawiatura.
Debugowanie Windows za pomocą GDB
Jeśli doświadczasz awarii lub zawieszenia OpenShot na Windows 10/11, poniższe instrukcje krok po kroku pomogą Ci ustalić przyczynę awarii. Instrukcje te wyświetlą ślad stosu kodu źródłowego OpenShot w miejscu awarii. Informacje te są niezwykle przydatne dla naszego zespołu deweloperskiego i warto dołączyć je do zgłoszeń błędów (dla szybszego rozwiązania).
Zainstaluj najnowszą wersję dzienną
Przed dołączeniem debugera, pobierz najnowszą wersję OpenShot: https://www.openshot.org/download#daily. Zainstaluj tę wersję OpenShot w domyślnej lokalizacji: C:\Program Files\OpenShot Video Editor\. Szczegółowe instrukcje dotyczące debugowania OpenShot na Windows znajdziesz w tej wiki.
Zainstaluj MSYS2
Wersja OpenShot na Windows jest kompilowana przy użyciu środowiska o nazwie MSYS2. Aby dołączyć debuger GDB do naszego pliku wykonywalnego openshot-qt.exe, musisz najpierw zainstalować MSYS2. Ten krok jest wymagany tylko raz.
Pobierz i zainstaluj MSYS2: http://www.msys2.org/
Uruchom wiersz poleceń
MSYS2 MinGW x64(na przykład:C:\msys64\msys2_shell.cmd -mingw64)Zaktualizuj wszystkie pakiety (skopiuj/wklej następujące polecenie):
pacman -SyuZainstaluj debuger GDB (skopiuj/wklej następujące polecenie):
pacman -S --needed --disable-download-timeout mingw-w64-x86_64-toolchain
Uruchom OpenShot z debugerem GDB
Uruchom wiersz poleceń MSYS2 MinGW x64 (na przykład: C:\msys64\msys2_shell.cmd -mingw64)
Zaktualizuj zmienną PATH (skopiuj/wklej następujące polecenia):
export PATH="/c/Program Files/OpenShot Video Editor/lib:$PATH"
export PATH="/c/Program Files/OpenShot Video Editor/lib/PyQt5:$PATH"
Załaduj OpenShot do debugera GDB (skopiuj/wklej następujące polecenia):
cd "/c/Program Files/OpenShot Video Editor"/
gdb openshot-qt.exe
Uruchom OpenShot z poziomu konsoli GDB (skopiuj/wklej następujące polecenie):
run --debug
Wyświetl informacje debugowania
Gdy OpenShot zostanie pomyślnie uruchomiony z dołączonym GDB, wystarczy wywołać awarię lub zawieszenie w OpenShot. Po wystąpieniu awarii wróć do terminala MSYS2 MinGW64 i uruchom jedno z poniższych poleceń (wpisując je i naciskając ENTER). Zazwyczaj pierwszym poleceniem jest bt, co oznacza backtrace. Więcej poleceń znajduje się poniżej.
(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)