Coreファイルの表示方法(一般)

Coreファイルの表示方法(一般)

シナリオ(Ubuntu 16.04):

Cプログラムをコンパイルして実行します(を使用して-gTraditionalを取得しSegmentation Fault (core dumped)ましたが(もちろん)素晴らしい「コア」ファイルが見つかりませんでした/proc/sys/kernel/core_patternecho '|tee /home/me/my_core_folder/my_core_file' | sudo tee /proc/sys/kernel/core_pattern後)、私はますます(core dumped)理解し始めていますSegmentation Fault。行きたい場所に移動するには、オートコンプリート機能を使用してください。gdb ./program_object_file.out core.pidgdb ./a.out(gdb) core core.pidtab

質問:

コアダンプを取得する一般的な方法はありますか?私は私が接触したすべてのマシンに次の特徴があることに気づきました。マイケル・ベイの変圧器-esque私が所有するすべてのデバイスがデフォルトで正しく機能しないようにハードウェアとソフトウェアを再構成する機能です。私のコンピュータはもちろん、他のコンピュータでもコアダンプを見つけることができる簡単なアルゴリズム/方法はありますか?私はいつも自分のために仕事をたくさんした後、友人にこのようなことを教えることを発見します。コマンドや何かを実行して、実行可能ファイルが実行されているディレクトリにコアファイルをダンプできるようにしたいと思います。わかりました。

ベストアンサー1

これcore(5)マンページでは、命名を含むコアダンプに影響を与えるパラメータについて詳しく説明します。

あなたの質問に答えると、コアダンプを見つけるための普遍的な方法はありません。デフォルトでは、コアダンプはプロセス現在の作業ディレクトリ、プロセスがそこに書き込むことができる場合、含むファイルシステムに十分なスペースがある場合、既存のコアダンプがない場合(場合によっては)、ファイルサイズとコアファイルサイズの制限(次に決定)ulimitなどメカニズム)を許可します。ただし、/proc/sys/kernel/core_patternコアダンプを処理する方法はさまざまであるため、実際にこれを見て、何が起こっているのかを把握する必要があります。

あなたの場合、最初にコアが見つからなかった理由はわかりませんが、パイプを使用するときにリダイレクト:ハンドラを設定した後にコアのインポートを中断した理由はわかりますcore_pattern〜しなければならない絶対パス名を使用して指定します。teeそれ自体では使用されません/usr/bin/tee。コアダンプを処理するプログラムはroot

Debian派生物にインストールしますcorekeeper、使いやすい方法でコアダンプを作成します/var/crash

おすすめ記事