故障排除
如果您在使用 OpenShot 时遇到冻结、崩溃或错误消息等问题,有许多不同的技术可以帮助排查问题。
Windows 11 无响应
如果您在 Windows 11 上遇到冻结,这是 PyQt5 与 Windows 11 之间的已知问题,涉及 Qt 的辅助功能。在 OpenShot 中按下 Ctrl+C (仅限 Windows 11 )会触发此问题。OpenShot 会变得无响应,并且存在内存泄漏(即 OpenShot 无响应时间越长,内存泄漏越严重,直到 OpenShot 最终崩溃或用户终止进程)。
一个简单的解决方法是在 Windows 11 上避免使用 Ctrl+C ,改用右键菜单中的复制/粘贴。另一种方法是将“复制”快捷键从 Ctrl+C 重新映射为其他按键,例如 Alt+C 。您可以在 OpenShot 的首选项中更改键盘映射。参见 键盘 。
Windows 下使用 GDB 调试
如果您在 Windows 10/11 上使用 OpenShot 时遇到崩溃或冻结,以下逐步说明将帮助您确定崩溃原因。这些说明将显示 OpenShot 源代码中崩溃位置的堆栈跟踪信息。这些信息对我们的开发团队非常有用,也非常适合附加到错误报告中(以加快解决速度)。
安装最新的每日构建版本
在附加调试器之前,请下载 OpenShot 的**最新版本** :https://www.openshot.org/download#daily。将此版本的 OpenShot 安装到默认位置:C:\Program Files\OpenShot Video Editor\ 。有关在 Windows 上调试 OpenShot 的详细说明,请参见 ` 此维基 <https://github.com/OpenShot/openshot-qt/wiki/Windows-Debugging-with-GDB>`_ 。 this wiki
安装 MSYS2
Windows 版本的 OpenShot 是使用名为 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
使用 GDB 调试器启动 OpenShot
运行 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
从 GDB 提示符启动 OpenShot(复制/粘贴以下命令 ):
run --debug
打印调试信息
一旦 OpenShot 成功启动并附加了 GDB,您只需在 OpenShot 中触发崩溃或冻结。当发生崩溃时,切换回 MSYS2 MinGW64 终端,运行以下命令之一(输入命令后按回车)。通常,第一个输入的命令是 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)