web-dev-qa-db-ja.com

ワインの未処理のスタックオーバーフロー

Ubuntu16.04のどのバージョンでも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

唯一機能しているプログラムはwinetricksであり、winecfgなどを起動するために使用することはできません。毎回このエラーが発生します。

Wine2.0、wine1.8、1.6を試してみて、.wineフォルダーまたはwineプレフィックスを削除しようとしましたが、一度削除すると、winebootで再作成することさえできません。

これを修正するにはどうすればよいですか?

3
Rackover

それを見つけた。実際、セグメンテーション違反とクラッシュを引き起こしたのは、Wineだけでなく、多くのプログラム(LeafPad、LxAppearance、およびその他のいくつかのもの)でした。

そこで、straceを使用してエラーを調査したところ、これらのアプリケーションがクラッシュすると、存在しないのカーソルアイコンファイルを読み込もうとしたことがわかりました。

そして、1週間前のようなカーソルテーマ(Adwaitaテーマの代わりにBreezeテーマ)をインストールしましたが、当時は機能せず、(i3をウィンドウマネージャーとして使用しているため)気にするのをやめました。 i3の一般的なグラフィック動作の変更は少し複雑です)。

明らかに、カーソルの変更は、切り替え後の3番目または4番目の接続後にのみ考慮されました。そして、「バギー」カーソルテーマが読み込まれると、指定されたアイコンが見つからなかったときにデフォルトのX11カーソルテーマ(またはAdwaita)にフォールバックする代わりに、「メモリ不足」のたわごとが発生していました。

Breezeテーマをアンインストールしてから適切に再インストールすることで問題が修正されました(そして私もそれらをたくさんインストールしました)。これにテーマをインストールするシステムは次のように行われます:

  • 〜/ .icons /内の個別のフォルダーにすべてのテーマをコピーする
  • find -type l -deleteを使用して、これらのテーマフォルダ内のすべてのシンボリックリンクを削除します
  • テーマフォルダごとにシンボリックリンクを作成して、〜/ .iconsと同じように/ usr/share/iconsにも表示されるようにします。
  • Lxappearanceでテーマを切り替えます(以前にシンボリックリンクを削除していなかった場合、ここまでにほとんどすべてのプログラムでセグメンテーション違反が発生します)。この時点で、リンクが欠落しているため、すべてのカーソルがグリッチアウトされます。
  • 手順2で削除したすべてのシンボリックリンクを、たとえばテーマアーカイブから再度抽出して復元します。

その後、再起動します。テーマが正常にロードされ、LxAppearanceによって理解されると、セグメンテーション違反エラーは二度と発生しません。

また、一部のテーマ(AdWaitaなど)は、内部にシンボリックリンクがあるにもかかわらず、LXAでのスイッチオンをサポートしていることに気付くかもしれませんが、他のテーマ(Breezeやそのバリアントなど)は、これらの操作を繰り返す必要がありません。毎回。

ああ、Linuxとグラフィカルインターフェイス。 Windowsの不安定性についてあなたが望むすべてを話してください、しかし私はカーソルアイコンファイルの欠落によって引き起こされる一般的なシステム障害を見たことがありません。

3
Rackover