[解決済み] C++プログラムがEXIT CODEでクラッシュする。9 (SIGKILL)
質問
アプリケーションプログラムがEXIT CODEでクラッシュしてしまいます。9 (SIGKILL)
kill -9 (pid)」や「pkill (プロセス名)」など、実行中のプロセスを終了させるコマンドを実行したことがありません。
この場合、どこからデバッグを始めればよいのでしょうか?
-
プログラムがクラッシュしたときにスタックトレースをダンプしようとしましたが、エラー処理のためにSIGKILLを捕捉できないことがわかりました。
-
このプログラムはMPIを使用し、クラスタ環境で動作しています。実行後1時間程度で終了します。
SIGKILL例外を発生させる一般的な原因はありますか?
(linux; cent os 7で動作しています。)
解決方法は?
この質問に対する回答は、後ほどどなたかのご参考になればと思います。
例外はOutOfMemoryによって引き起こされました。
プロセスがメモリを過剰に確保し、OSに負担をかけている。OSにヒットマンがいる。 オームキラー システムの安定のために、そのようなプロセスを停止させる。oom-killerはSIGKILLと呼ばれる弾丸を使用します。
しかし、SIGKILLは目に見えない(アプリケーションがキャッチして処理できない)ので、私を含む一部の初心者にとっては、クラッシュの真の原因を突き止めるのは必ずしも容易ではありません。
良い点としては、ヒットマンがあなたのプロセスを殺すとき、必ずその動作を /var/log/messages に記録することです。
OS の設定によっては、oom-killer はメッセージを全く記録しないかもしれません。そのような場合にも、設定することができます。googleでrsyslog configurationを検索してください。
関連
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] プログラムがクラッシュしたときにスタックトレースを自動的に生成する方法
-
[解決済み] Bashでパイプ出力と終了ステータスをキャプチャする
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み】LinuxのOOMキラーで殺されたプロセスを探す [終了しました]