2017-02-07 14 views
0

Я понял, что если abrt-ccpp.service установлен на ПК с Linux, он заменяет/перезаписывает (я читал оба, не уверен, что true) файл /proc/sys/kernel/core_pattern, который в противном случае определяет структуру местоположения и файла имен файлов ядра.Не удается найти файл ядра с установленным abrt-hook-cpp

Вопрос:

Когда я исполняю 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/ из-за комментария в this link. Основного файла нет.
  • Отредактировано /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-крючок-парогазовой и где он создает основные файлы? Спасибо.

+0

Вы можете просто изменить свой «core_pattern», чтобы указать на предопределенный каталог. Я всегда делаю это так, если я не догадываюсь, как работают все эти умные сервисы, требующие большого внимания. –

+0

Ваше предложение сработало - спасибо. Не могли бы вы опубликовать это как ответ? В дополнение к кредитованию вашего ответа у меня возникли непредвиденные проблемы (в конечном итоге были решены), редактирование core_pattern, и я хотел задать дополнительные вопросы по этому вопросу. – StoneThrow

ответ

0

Я хотел бы зачислить https://unix.stackexchange.com/users/119298/meuh, которые ответили на это по адресу https://unix.stackexchange.com/questions/343240/cannot-locate-core-file-with-abrt-hook-cpp-installed.

Ответ добавить эту строку в файл /etc/abrt/abrt-action-save-package-data.conf

ProcessUnpackaged = yes 

Комментарий от @ Даниель-камил-Kozar также жизнеспособный обходной путь.