私は少し前にこの質問をStackOverflowに投稿しましたが、たった今このコミュニティが見つかり、これはこの質問に少なくとも同等に適切なサイトであると感じました。
Linux PCにabrt-ccpp.serviceがインストールされている場合、ファイル/proc/sys/kernel/core_pattern
を上書き/上書きします(両方を読みましたが、どちらが本当かわからない)。コアファイルの場所とファイル名のパターン。
質問:
systemctl
を実行すると、なぜabrt-ccpp.serviceがexited
列の下にSUB
を報告するのですか? active
とexited
の組み合わせがわかりません。サービスは「有効」/アクティブ/実行中ですか?
> systemctl
UNIT LOAD ACTIVE SUB
abrt-ccpp.service loaded active exited ...
質問:
コアファイルはどこに生成されますか?私はSIGSEGV
を生成するためにこのプログラムを書きました:
#include <iostream>
int main(int argc, char* argv[], char* envz[])
{
int* pInt = NULL;
std::cout << *pInt << std::endl;
return 0;
}
次のようなコンパイルと実行:
> g++ main.cpp
> ./a.out
Segmentation fault (core dumped)
しかし、コアファイルが生成される場所を見つけることができません。
私が試したこと:
main.cpp
と同じディレクトリを探しました。コアファイルがありません。/var/tmp/abrt/
内の次のコメントのため、/etc/abrt/abrt.conf
を調べました。コアファイルがありません。...
# Specify where you want to store coredumps and all files which are needed for
# reporting. (default:/var/tmp/abrt)
#
# Changing dump location could cause problems with SELinux. See man_abrt_selinux(8).
#
#DumpLocation = /var/tmp/abrt
...
/var/spool/abrt/
を調べました。コアファイルがありません。/etc/abrt/abrt.conf
を編集してコメントを外し、既存のディレクトリであるDumpLocation = ~/foo
を設定しました。その後、abrt-hook-ccpp(Sudo service abrt-ccpp restart
)を再起動し、a.out
を再実行しました。コアファイルは~/foo/
で生成されませんでしたulimit -c
がunlimited
を報告することを確認しました。私は他に何を試すべきか、どこを見るべきかについての考えがありません。
参考までに、これは私の/proc/sys/kernel/core_pattern
のコンテンツです。
> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
誰かがabrt-hook-ccppサービスがどのように機能し、コアファイルを生成する場所を説明できますか?ありがとうございました。
1つの可能性は、設定ファイル/etc/abrt/abrt-action-save-package-data.conf
の行を変更する必要があることです。
ProcessUnpackaged = no
yes
に変更しないと、パッケージマネージャによってインストールされたプログラム(dnf
、apt
など)からのコアファイルのみがキャプチャされます。 abrt-gui
またはabrt-cli
を使用して、コアダンプを探します。
私が言ったこととは別に、クラッシュ情報がabrtデーモンによって収集されたら(前述の構成ファイルを変更してから再起動した後)、abrt-cliまたはabrt-guiを使用して、その情報の場所を確認できます。
# abrt-cli -a ls
id xxxxxxxxxxxxxxxxxx
reason: MYPROGRAM killed by SIGABRT
time: Thu 10 Jan 2019 11:48:07 AM CET
cmdline: ./myExecutable
uid: 1001
Directory: /var/spool/abrt/ccpp-2019-01-10-11:48:07-17559
Run 'abrt-cli report /var/spool/abrt/ccpp-2019-01-10-11:48:07-17559' for creating a case in Red Hat Customer Portal
提供されたディレクトリにcoredump
ファイルがあります。