【zt】coreファイルの簡単な紹介


//--------------------------------------------------------------- 1.coreファイルの簡単な紹介//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------coreファイルは、主にデバッグに使用されるメモリマッピング(デバッグ情報も加算)にすぎません.//--------------------------------------------------------------------------------------------------------------------------2.coreファイルの生成をオンまたはオフにする/----------------------------------------------------------------------------------------------------------------------------------------システムのcoreファイルの生成を阻止するには、次のコマンドを使用します.
ulimit -c 0

次のコマンドはcoreファイルを生成するオプションが開いているかどうかを確認します.
ulimit -a

このコマンドには、すべてのユーザーカスタマイズが表示されます.オプション-aは「all」を表します.システムファイルを変更してcoreオプションを調整することもできます.
/etc/profile

通常、coreファイルの生成を禁止する言葉があります.通常、この設定は合理的です.#No core files by default
ulimit -S -c 0 > /dev/null 2>&1

しかし、開発中に問題をデバッグするために、coreファイルを特定のユーザー環境で開く必要がある場合があります.
~/.bash_profile

に加える
ulimit -c unlimited

特定のユーザーがcoreファイルを生成できるようにするには
ulimit -c 0 

coreファイルの生成も禁止され、
ulimit -c 1024

生成されたcoreファイルのサイズを1024 kb//-------------------------------------------------------------------------3に制限する.Core Dumpのコアダンプファイルディレクトリと命名規則を設定/-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/proc/sys/kernel/core_uses_pid

生成されたcoreファイルのファイル名にpidを拡張として追加するかどうかを制御できます.追加するとファイル内容は1になります.そうしないと0になります.
proc/sys/kernel/core_pattern

フォーマットされたcoreファイルの保存場所またはファイル名を設定できます.たとえば、元のファイルの内容がcore-%eである場合は、次のように変更できます.
echo "/corefile/core-%e-%p-%t" > core_pattern

制御によって生成されたcoreファイルは/corefileディレクトリに格納され、生成されたファイル名は
core- -pid- 

パラメータのリストは次のとおりです.
   %p - insert pid into filename  pid

    %u - insert current uid into filename  uid
    %g - insert current gid into filename  gid
    %s - insert signal that caused the coredump into the filename  core
    %t - insert UNIX time that the coredump occurred into filename  core unix
    %h - insert hostname where the coredump happened into filename 
    %e - insert coredumping executable name into filename 

//--------------------------------------------------------------- 4.coreファイル/----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
gdb -c core

GNUのデバッガを起動し、coreファイルをデバッグします.また、このcoreファイルを生成するプログラム名、このプログラムを中止する信号などが表示されます.このcoreファイルを生成するプログラムが何であるか知っている場合は、MyServerがクラッシュしてcoreを生成します.12345、このコマンドでデバッグします.
gdb -c core MyServer

以下はどうすればgdbの使用を学ぶことができます/-------------------------------------------------------------------------5.coreファイルの生成/---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
kill -s SIGSEGV $$