【zt】coreファイルの簡単な紹介
//--------------------------------------------------------------- 1.coreファイルの簡単な紹介//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------coreファイルは、主にデバッグに使用されるメモリマッピング(デバッグ情報も加算)にすぎません.//--------------------------------------------------------------------------------------------------------------------------2.coreファイルの生成をオンまたはオフにする/----------------------------------------------------------------------------------------------------------------------------------------システムのcoreファイルの生成を阻止するには、次のコマンドを使用します.
次のコマンドはcoreファイルを生成するオプションが開いているかどうかを確認します.
このコマンドには、すべてのユーザーカスタマイズが表示されます.オプション-aは「all」を表します.システムファイルを変更してcoreオプションを調整することもできます.
通常、coreファイルの生成を禁止する言葉があります.通常、この設定は合理的です.#No core files by default
しかし、開発中に問題をデバッグするために、coreファイルを特定のユーザー環境で開く必要がある場合があります.
に加える
特定のユーザーがcoreファイルを生成できるようにするには
coreファイルの生成も禁止され、
生成されたcoreファイルのサイズを1024 kb//-------------------------------------------------------------------------3に制限する.Core Dumpのコアダンプファイルディレクトリと命名規則を設定/-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
生成されたcoreファイルのファイル名にpidを拡張として追加するかどうかを制御できます.追加するとファイル内容は1になります.そうしないと0になります.
フォーマットされたcoreファイルの保存場所またはファイル名を設定できます.たとえば、元のファイルの内容がcore-%eである場合は、次のように変更できます.
制御によって生成されたcoreファイルは/corefileディレクトリに格納され、生成されたファイル名は
パラメータのリストは次のとおりです.
//--------------------------------------------------------------- 4.coreファイル/----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GNUのデバッガを起動し、coreファイルをデバッグします.また、このcoreファイルを生成するプログラム名、このプログラムを中止する信号などが表示されます.このcoreファイルを生成するプログラムが何であるか知っている場合は、MyServerがクラッシュしてcoreを生成します.12345、このコマンドでデバッグします.
以下はどうすればgdbの使用を学ぶことができます/-------------------------------------------------------------------------5.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 $$