KDE环境下VS Code调用kdialog致内存无限占用系统冻结求助
问题:Ubuntu 24.04 KDE环境下VS Code「另存为」对话框无法弹出,kdialog进程资源耗尽
问题描述
在Ubuntu 24.04的KDE桌面环境中,使用Visual Studio Code打开「另存为」对话框时,对话框无法弹出,同时kdialog进程会占用100% CPU并持续分配内存,最终导致系统完全冻结。
复现步骤(含VS Code清理重装)
执行以下命令彻底清理并重装VS Code:
snap remove --purge code rm -rf ~/.config/Code rm -rf ~/.vscode snap install code --classic
完成后打开VS Code(禁用所有扩展、关闭GPU加速),新建文件并尝试保存,此时VS Code会启动带以下参数的kdialog进程:
kdialog --attach=75497476 --title="Save As" --getsavefilename /home/user/textfile "All Files (*.txt)|Plain Text (*.bat *.cmd) [...]"
已排查信息
- 单独执行上述kdialog命令可正常打开对话框并返回正确路径
- 通过
strace -f -p $(pgrep kdialog)跟踪kdialog进程,发现其无限调用brk内核函数,说明进程在持续扩展内存 - 用gdb调试发现进程卡在
KBuildSycoca::recreate的无限循环中,该问题与~/.cache/.ksyscoca5*文件相关,对应PID的.lock文件始终存在,即使清理缓存后仍会自动重建
求助
- 如何进一步排查该问题?
- ksycoca与此问题存在何种关联?
环境版本:kdialog 23.08.5,VS Code 1.94.2 x64
内容的提问来源于stack exchange,提问作者Nicola Lissandrini
相关产品推荐
相关产品推荐

