2016-10-03 6 views

答えて

2

ロードされたライブラリ内のseg-faultに対してアプリケーションを武装させることは確実ではありません。そのライブラリ内の機能をローカルソケットまたはyour favorite IPC methodを介して通信するサービスに移動することができれば、サービスとの通信の失敗を簡単に処理できます。

EDIT

私はSIGSEGVをキャッチすることが可能であるかどうかを確認するために周りを探し少しをしたし、この非常に事を行うにしようとするソフトウェアライブラリがあることを学びました。

  • GNU船libsigsegv
  • たちの間でのC++ユーザーのための同様のライブラリsegvcatchについてのSOの質問もあります:C++: Is using segvcatch safe?私はOSXのボックスにこの簡単な例を試してみました、それが動作しませんでしたが。 YMMV。

「can not」を「should not」に変更しましょう。

1

プラグインはアプリケーションです。そこにはどのような種類の分離もありません。プラグインがクラッシュした場合、クラッシュするプロセスです。それがプラグインです。

プラグインは、モジュール式ソフトウェアシステムを設計する単なる方法です。誰もあなたにそれらを使うよう強制しない。 IPCライブラリを使用してコンポーネントプロセス間で通信することにより、独自のプロセスでモジュールを自由にコンパイルすることができます。

関連する問題