GNU/Linux >> Linux の 問題 >  >> Linux

コアダンプの場所の変更

はい、そうです。 /proc/sys/kernel/core_pattern を変更できます コアファイルの生成に使用されるパス名を定義します。詳細については、man core を参照してください

例:

echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern    # `tee' instead of > so that
                                                                   # opening happens in the
                                                                   # elevated process

今後のすべてのコア ダンプは /tmp で生成されます core_[program].[pid] という名前にする


受け入れられた回答の指示に従う前に、 /proc/sys/kernel/core_pattern の内容を確認することをお勧めします Redhat abrt システムが使用されているかどうかを確認します。

-> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e

それが使用されている場合は、コア ファイルを管理するためのかなり広範なスキームがすでに存在し、それをオーバーライドする前に理解しておく必要があります。

要約すると、

<オール>
  • ここにコアファイルを置きます:/var/spool/abrt/
  • コマンド abrt-gui で開始される GUI があります
  • 失敗したプロセスに関する追加情報でコアファイルを補強します。
  • は次のファイルで構成されています:/etc/abrt/abrt-action-save-package-data.conf
  • これを使用する際の一般的な障害の 1 つは、構成ファイルの次の行を変更することです:

    ProcessUnpackaged = no
    

    自作プロセスからコア ファイルをキャプチャするには、これを yes に変更します。そうしないと、パッケージ マネージャーによってインストールされたプログラムからコア ファイルのみがキャプチャされます。

    [コアダンプの使い方に答える編集] コア ダンプを調べるには、次のようにします。

    cd /var/spool/abrt/XXXXXXX
    gdb $(cat executable) coredump
    

    そのためのより良い方法があるかもしれませんが、gdb は私によく役立ったので、他の方法は探していません。 XXXXXXX をコアダンプ ファイルを含むフォルダーに置き換えるだけです。 gdb コマンドは、カット アンド ペーストの準備ができています。

    参照:

    Redhat ブック

    CentOS フォーラム


    Linux
    1. /proc/[pid]/pagemaps および /proc/[pid]/maps | Linux

    2. NFS キャッシュ クリーニング コマンド?

    3. カーネル モジュール パラメータの変更 (/sys/module を使用)

    1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

    2. chroot環境でdev、proc、sysをマウントしますか?

    3. /proc/sys に存在する Linux カーネル パラメータはどこに記載されていますか?

    1. Linux – / proc/mntを/proc/ mountsにリンクしますか?

    2. Linux –ユーザースペースとカーネルの通信に/devと/sysをいつ使用するか?

    3. Linux – Core_patternの編集が制限されているのはなぜですか?