Linux が中止された(コアがダンプされた)。
2022-02-23 10:05:17
1. 問題の説明
またはその外観。
2. コアダンプの解析について
2.1 Core Dumpとは
-
コアとは
Memory
ダンプとはThrow out, heap out
. プログラムを開発(使用)していると、時々、何の表示もなく(コアダンプされたと表示されることもある)、プログラムがなぜかダウンしてしまうことがある。システムは正常でも、次回に同じ問題に遭遇することがあります。このようなときは、次のようなコードがあるかどうかを確認するのがよいでしょう。core.PID
このファイルは、OSがダウンしたときに、プログラムのメモリ内容を捨てて、我々やデバッガが参照できるようにするために生成されるものです。この動作をコアダンプと呼びます。 -
core dump is also called a core dump, where the operating system stores the current memory state of a program in a core file when an exception occurs during the program's runtime and the program exits abnormally, called a core dump
プロセスが異常終了すると、プロセスユーザ空間のデータがディスクに書き込まれる .
2.2 プログラムがダウンしているのにCoreファイルが生成されないことがあるのはなぜですか?
-
プログラムがダウンしたとき、コンパイルエラーのようにファイル行にプロンプトが表示されるのではなく、何も情報がないことがあります。ひとつの方法として、gdbのステップ(
The linux debugging tool gdb is a very powerful debugger
)を、一歩一歩探していくのですが、何万行もあるコードを一歩一歩探していくのは想像に難くありません。もっといい方法があるはずで、それがコアファイルです。 -
しかし、コア・ファイルは生成されない、なぜなら
core.PID
コアファイルは、現在のシステムの環境設定で生成されるため、デフォルトのコアファイルのサイズは0です(Note the line core file size (blocks, -c) 0, which indicates the length (in bytes, the size of a block depends on the system) assigned to the core file.
)
-
次に、ulimit コマンドでコアファイルのサイズを表示、変更するために
ulimit -a
サイズを表示するにはulimit -c unlimited
はコアファイルの制限なし、またはulimit -c 1024
を指定すると、コアファイルに1024バイトが割り当てられます。
-
その後、再度プログラムを実行すると
core.PID
コアファイル( コアファイルは通常、実行中のアプリケーションのパスと同じ場所に生成され、ファイル名は通常 core.process となります。 ).
2.3 coreファイルの使い方を教えてください。
コアダンプが発生した後、gdbを使用してコアファイルの内容を表示し、コアダンプのトリガーとなったファイルの行を探します。Linuxでは、コアファイルのエラースタック情報を見るには、次の2つの方法があります。
gdb -c core.pid program_name
または
gdb [program_name] [core.pid]
gdbモードは以下のように入力することができます。
-
gdbを入力した後
where
と入力すると、どの行で、どの関数内で、誰によって呼ばれたのか、などを示すことができます。 - gdbを入力した後にbtと入力し、btコマンドでバックトレースを見て、プログラムの実行がどこで発生したかを確認し、コアダンプのfile->行を探します。
3、複数の例
3.1 batch_size が大きすぎる原因
3.2 あるスレッドが殺害され、殺害されたスレッドが例外をスローする場合
3.3 アクティブな例外処理なしに呼び出される純粋な仮想メソッドの終了について
マルチスレッドプログラムの場合、このエラーの主な原因は、現在のオブジェクトが破壊されたか、破壊される途中であるにもかかわらず、再び呼び出され、競合が発生することです。
3.4 という純粋な仮想メソッドです。
マルチスレッドプログラムの作成中に発生したランタイムエラーを記録:純粋な仮想メソッドの呼び出し
マルチスレッドのベースクラスに純粋仮想関数runを書き、サブクラスがrun関数を継承している、注目は純粋仮想関数、ベースクラス構築時にスレッドを作成し、run関数を直接実行させた、サブクラスはまだ構築されていなかったので、この時点ではまだ純粋仮想関数、純粋仮想メソッドはエラーを呼んで終了、ありがとうございます http://bbs.csdn.net/topics/340224117这个帖子里的大神们
参考1.
コアダンプとは?
参考2.
セグメンテーションフォールト(コアダンプ)の解決方法
参考3.
Segmentation fault (core dumped)についての素朴な疑問。
参考4.
コアファイルについて
参考5.
ubuntu view core dumped detail エラー原因
関連
-
undefinedmakefile のエラー *** セパレータがありません。
-
解決 ERROR: EnvironmentError のため、パッケージをインストールできませんでした。[Errno 28] デバイスに空き領域がありません。
-
MongoDBインストール+解決エラー。mongod.service の起動に失敗しました:until not found
-
Linuxの一般的なコマンドを史上最も完璧にまとめた本(超充実! (超詳しい!)これだけ集めれば十分!?
-
linux system: make: *** `install' をターゲットにするルールがありません。停止してください。
-
これを知らなければ、おそらくLinuxを使い始めてもいないでしょう
-
mach-mini2440.c:155: error: array type has incomplete element type
-
CentOS 7 エラー: curl#60 - "ピアの証明書は有効期限が切れています。"
-
テキストファイルがビジー状態になる問題を解決
-
centos - centos7でcrontabを使用してmysqlのスケジュールバックアップを行う。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
undefinedmakefile:n: *** セパレータがありません。
-
Makefile:9: *** セパレータがありません。
-
mvn -v error: main class not found or couldn't be loaded org.codehaus.plexus.classworlds.launcher.
-
変数 `xxx' の解は、初期化子を持っているが型が不完全である。
-
プログラム下部の2つのスイスアーミーナイフをこじ開ける
-
centos 7.2 make: *** `default' が必要とする `build' をターゲットとするルールがありません。停止します。
-
linux リモートコピーコマンドと通常のファイルソリューションではありません。
-
'float' オブジェクトは整数として解釈できません。
-
nginx: [emerg] 0.0.0.0:80 への bind() に失敗しました (13: Permission denied)。
-
dpkg: パッケージの処理エラー ***(--install): 依存関係の問題 - 未設定にする