C/C++ コードからコンパイルされたバイナリを含む R パッケージに取り組んでいます。そのコンパイルされたコードの何かが、Windows (7、64 ビット) でランダムなクラッシュを引き起こしますが、Linux (さまざまなシステムと構成) ではそうではありません。私の R バージョンは 2.15.0 です。
R がクラッシュしたときに提供される情報を把握できないため、デバッグ方法がわかりません。
Problem signature:
Problem Event Name: BEX64
Application Name: Rterm.exe
Application Version: 2.150.58871.0
Application Timestamp: 4f75a75a
Fault Module Name: StackHash_2264
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Offset: 0000000000000000
Exception Code: c0000005
Exception Data: 0000000000000008
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1037
Additional Information 1: 2264
Additional Information 2: 2264db07e74365624c50317d7b856ae9
Additional Information 3: 875f
Additional Information 4: 875fa2ef9d2bdca96466e8af55d1ae6e
問題が StackHash モジュールにあるという事実から何かを学ぶことはできますか?
いくつかの追加情報:
R のドキュメントに従って、Linux で Valgrind を実行しましたが、問題は報告されませんでした。「gctorture」機能を試してみましたが、バグの動作には何の影響もないようです。
コードで pthread を使用して、マルチコア CPU を利用しています。マルチスレッドの使用を無効にすると (私が持っているプリプロセッサの定義を使用して)、問題は解決したように見えますが、これで本当に問題が解消されるのか、単に問題が発生しにくくなるのかはわかりません。
使用しているマシンで問題が発生するほど多くのメモリを使用していません。再帰呼び出しもいくつかありますが、Windows でスレッドが非常に限られたスタックを取得しない限り、スタックをオーバーフローさせるにはあまりにも少なすぎるようです。
マルチスレッドのランダム性とバグの可能性が低いため、コンソールまたはログ ファイルへの出力を使用してバグを特定するのに非常に苦労しています。
どんなポインタでも大歓迎です