3

Mac OS Xでアプリを開発していますが、クラッシュすることがあります(アプリが原因ではなく、ロードされる不安定なサードパーティのプラグインが原因です。このアプリは実際にはクラッシュファイアウォールとして機能します。多くのクラッシュが発生する可能性があります。起動時に発生するため、現時点ではユーザーにバグを報告する必要はありません)。

クラッシュレポートウィンドウがユーザーの前に表示されないようにする方法はありますか?

ありがとう!

PS:これはこのウィンドウに関するものですが、WebKit用ではありません: MacOSXのクラッシュレポートウィンドウ

4

3 に答える 3

4

実際にサポートされている解決策は知りませんが、それを達成するための (醜い) 方法がいくつかあります。

まず、自分で信号をキャッチする必要があります。その方法はご存知だと思います (「参考文献」を参照sigaction)。次に、クラッシュ シグナル ハンドラ内で を呼び出します_exit()。それは先頭のアンダースコアです。のより高速で安全性の低いバージョンですexit()。これにより、通常、クラッシュ レポーターが回避されます。私はこれをいくつかの C++ プロジェクトで使用しましたが、これは非常に不安定なメモリ管理を行っていたため、シャットダウン時にクラッシュすることがよくありました。私はそれを誇りに思っていません。効いてるって言ってるだけなのに……。

もう 1 つの解決策は、クラッシュ ハンドラー中に別の 2 番目のプロセスを起動することです。2 番目のプロセスは、CrashReporter が起動するまで待機します。そうなったら殺します。このアプローチを最後にテストしたのは 10.5 でした。10.7 が同じ種類のプロセスを起動してそのアラートを表示するかどうかはわかりません。

于 2012-05-11T15:06:24.283 に答える
2

システム全体のソリューションについては、をお読みくださいman ReportCrash。ただし、このソリューションはアプリケーションに固有のものではありません。

于 2012-05-11T14:50:55.773 に答える