Wine 未处理的堆栈溢出

Rac*_*ver 5 linux wine ubuntu ubuntu-16.04

我无法在 Ubuntu 16.04 上启动 wine,任何版本。并不是我不能用 wine 启动特定的程序,而是我根本无法启动 wine。每次发布葡萄酒都会崩溃,并给出以下错误:

wine: Unhandled stack overflow at address 0xXXXXX (thread XXXX), starting debugger...
err :seh:setup_exception_record stack overflow 1200 bytes in thread 0011 eip 7bc62f8d esp 00240e80 stack 0x240000-0x241000-0x3400000
Run Code Online (Sandbox Code Playgroud)

唯一的工作程序是 winetricks,我不能用它来启动 winecfg 或其他任何东西:每次都会出现此错误。

我尝试使用 Wine2.0、wine1.8、1.6,尝试删除 .wine 文件夹或 wine 前缀,但一旦完成,我什至无法使用 wineboot 重新创建它。

我能做什么来解决这个问题?

Rac*_*ver 4

找到了。事实上,不仅仅是 Wine,还有很多程序(LeafPad、LxAppearance 和其他一些东西)确实导致了分段错误和崩溃。

所以我曾经strace调查过这个错误,发现这些应用程序在崩溃时确实尝试加载不存在的光标图标文件。

虽然我确实安装了一些光标主题(大约一周前)(Breeze 主题,以取代 Adwaita 主题),但它在当时不起作用,我只是不再关心它(因为我使用 i3 作为窗口管理器并且改变 i3 的一般图形行为有点复杂)。

显然,只有在切换后下次登录后才会考虑光标的变化。一旦加载了“故障”光标主题,当找不到指定的图标时,它不会退回到默认的 X11 光标主题(或 Adwaita),而是会创建一些“内存溢出”的狗屎。

通过卸载然后再次正确安装 Breeze 主题(我还安装了很多主题)解决了问题。在此系统上安装主题是这样完成的:

  • 将所有主题复制到 ~/.icons/ 中的单独文件夹中
  • find -type l -delete删除这些主题文件夹中使用的所有符号链接
  • 为每个主题文件夹创建一个符号链接,以便它们也像在 ~/.icons 中一样出现在 /usr/share/icons 中
  • 使用 lxappearance 切换主题(如果您之前没有删除符号链接,那么您将在几乎每个程序中得到分段错误内容)。此时,由于缺少链接,光标将全部出现故障。
  • 例如,通过从主题存档中再次提取它们来恢复您在步骤 2 中删除的所有符号链接。

然后重新启动。一旦主题成功加载并被 LxAppearance 理解,分段错误就不会再发生。

另外,您可能会注意到,某些主题(例如 AdWaita)支持使用 LXA 打开,尽管它们内部有符号链接,而其他一些主题(如 Breeze 及其变体)则不支持,需要您重复这些主题每次操作。

啊,Linux 和图形界面。喜欢因缺少光标图标文件而导致的一般系统故障。