Linux

安裝了 abrt-hook-cpp 的核心文件在哪裡?

  • January 11, 2019

不久前我將這個問題發佈到 StackOverflow,但剛剛發現了這個社區,並且覺得這至少是一個同樣適合這個問題的網站:

我被引導理解,如果 abrt-ccpp.service 安裝在 Linux PC 上,它會取代/覆蓋(我都讀過,不確定哪個是真的)文件/proc/sys/kernel/core_pattern,否則指定位置和文件名模式核心文件。

問題

我執行的時候systemctl,為什麼abrt-ccpp.service會exitedSUB欄下報錯?我不明白activeand的組合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 服務的工作原理以及它在哪裡生成核心文件嗎?謝謝你。

一種可能性是需要更改配置文件中的行/etc/abrt/abrt-action-save-package-data.conf

ProcessUnpackaged = no

to yes,否則 abrtd 將僅從包管理器(、、或其他)安裝的程序中擷取核心dnf文件apt。使用abrt-guiabrt-cli查找核心轉儲。

除了 meuh 所說的,一旦 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文件。

引用自:https://unix.stackexchange.com/questions/343240