Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxコアファイルの紹介

Linuxコアファイルの紹介

  

1.コアファイルの簡単な紹介プログラムがクラッシュすると、通常は指定されたディレクトリにコアファイルが生成されます。コアファイルは、主にデバッグ用の単なるメモリイメージ(およびデバッグ情報)です。

2.コアファイルの生成をオンまたはオフにするシステムがコアファイルを生成しないようにするには、次のコマンドを使用します。ulimit -c 0次のコマンドは、コアファイルを生成するオプションが開いているかどうかを確認できます。ユーザーカスタマイズ。オプション-aは' all'を表します。

システムファイルを変更してコアオプションを調整することもできます/etc /profileには、通常、コアファイルの生成を禁止する文があります。 0> /dev /null 2> 1ただし、開発プロセスでは、問題をデバッグするために、ユーザーの〜/.bash_profileとulimit -c unlimitedに設定を生成するために、特定のユーザー環境でコアファイルを開く必要があります。 ulimit -c 0の場合、コアファイルを生成することは禁じられており、ulimit -c 1024は生成されたコアファイルのサイズを1024kb以下に制限します。

3.コアダンプコア転送を設定します。ファイルディレクトリと命名規則/proc /sys /kernel /core_uses_pidは、拡張子としてpidを付けて生成されたコアファイルのファイル名を追加するかどうかを制御できます。フォーマットされたコアファイルの保存場所またはファイル名を設定します。たとえば、元のファイルの内容はcore-%eです。echo< /corefile /core-%e-%p-%t"> /proc /sys /kernel /core_patternコントロールによって生成されたコアファイルは/corefileディレクトリに保存されます生成されたファイル名はcore-command name-pid-timestampですパラメータリストは次のとおりです:%p - pidをfilenameに追加pid%uを追加 - Filename現在のUIDを追加%g - 現在のGIDをファイル名に挿入現在のGIDを追加%s - コアダンプを引き起こしたシグナルをファイル名に挿入コア%tを引き起こしたシグナルを追加 - コアファイル生成を追加するときにコアダンプが発生したUNIX時間をfilenameに挿入Unix時間%h - コアダンプが発生したホスト名をfilenameに挿入します。hostname%e - コアダンプ実行可能ファイルの名前をfilenameに挿入します。コマンド名を追加します。

4.コアファイルがあるディレクトリのコアファイルを使用します。 c coreは、GNUデバッガを起動してコアファイルをデバッグし、コアファイルを生成したプログラムの名前を表示したり、このプログラムのシグナルを中止したりします。MyServerのように、どのプログラムがコアファイルを生成したかを知っている場合core.12345を生成し、そしてこのコマンドでデバッグして下さい:gdb -c core MyS gdb

5.コアファイルの生成をコマンドに直接テストする簡単な方法は、次のとおりです。kill -s SIGSEGV $$

6。 Br> ときどきプログラムが
になっていますが、
Core
ファイルが生成されないのはなぜですか。

Linuxでは、シェルとプロセスで利用可能なリソースを示す設定があります。これらの設定は

#ulimit -a
を使用して確認できます。 (ulimitはbash組み込みコマンドです)

-a現在の制限すべてが報告されます。-c作成されたコアファイルの最大サイズ-dプロセスの最大サイズ
'
データセグメント-e最大スケジューリング優先順位(" nice")-fシェルとその子プロセスによって書き込まれるファイルの最大サイズ-i保留中のシグナルの最大数-l可能な最大サイズメモリにロックされています。-m常駐セットの最大サイズ(Linuxには影響しません)-nオープンファイル記述子の最大数(ほとんどのシステムではこの値を設定できません)-p 512バイトブロック単位のパイプサイズ(これは)設定できません。-q POSIXメッセージキューの最大バイト数-r最大リアルタイムスケジューリング優先順位-s最大スタックサイズ-t最大cのサイズ秒単位のPu時間-u 1人のユーザーが使用できる最大プロセス数-vシェルが使用できる最大仮想メモリ量-xファイルロックの最大数

-cが表示された場合:コアファイルサイズ(ブロック数、-c)

この値が0の場合、コアファイルを生成できません。そのため、コアファイルを有効にするには、

#ulimit -c 1024
または #ulimit -c unlimited
を使用します。

プログラムエラーが発生したときにコアファイルが生成されると、セグメンテーションエラー(コアダンプ)

が表示されます。

7.コアダンプ
コアダンプファイルのディレクトリと命名規則

/proc /sys /kernel /core_uses_pidは、次のファイルで制御できます。コアファイルのファイル名の拡張子としてpidを追加するかどうか(追加された場合)、ファイルの内容は1、それ以外の場合は0です。

Copyright © Windowsの知識 All Rights Reserved