私はロックフリーの共有変数クラスを作成しています。私の実装が計画どおりに機能するかどうかを確認するためにSIGSEGVフォールトを生成できます。私はポインタを変更して100回読む関数を作成しようとしました。私は両方のスレッドでこの関数を呼び出して、スレッドを自分のプログラム内で無限に実行させます。これは私が望むエラーを生成しません。これを行うにはどうしたらいいですか?C++デバッグ目的のためにSIGSEGVを作成する
編集 私はすべてのセグメンテーションフォールトを処理しませんが、私はロックを削除した場合、彼らは私のプログラムで生成されます。私は、ロックレスデザインを使用したいので、私はCASを使用してロックレスな共有変数クラスを作成しました。 segfaultsを生成するコードがあるので、クラスを使って問題を解決できるかどうかを確認する方法はありますか?無効なポインタデリファレンス
一体何を?あなたはSIGSEGVで何をしようとしますか?これはまったく意味がありません。あなたが解決しようとしている問題を教えてください。セグメンテーション障害を傍受して破棄することによって問題に対応しようとするプログラムを作成しましたか?これはあなたに全く関係しませんか? 「これをやるにはどうしたらいいですか?」ターン180度は第1ステップです。 –
@LightnessRacesinOrbit私は、クライアントがsegfaultで生き残ることができる共有メモリアプリケーション(クライアントがsegfaultであればクリーンアップさせることによって)が合理的なアプリケーションだと思います。ラインの間を読んで、これはOPがやっているように聞こえる。 – James
@Lightness:例外セーフスマートポインタを作成しようとしていた場合、例外が発生したときにユニットテストの動作をしなければならないと思いませんか?これは同様の考えのようです。 –