Ano to je. Můžete změnit /proc/sys/kernel/core_pattern
k definování názvu cesty použitého ke generování corefile. Více viz man core
příklad:
echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern # `tee' instead of > so that
# opening happens in the
# elevated process
by způsobilo, že všechny budoucí výpisy jádra budou generovány v /tmp
a bude se jmenovat core_[program].[pid]
Než budete postupovat podle pokynů v přijaté odpovědi, může být dobré zkontrolovat obsah /proc/sys/kernel/core_pattern
abyste zjistili, zda se používá systém Redhat abrt.
-> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Pokud se to používá, pak již máte poměrně rozsáhlé schéma pro správu základních souborů, kterému byste chtěli porozumět, než jej přepíšete.
Stručně řečeno, abrt:
- sem umístí základní soubory:
/var/spool/abrt/
- má grafické rozhraní, které se spouští příkazem
abrt-gui
- rozšíří soubor core o další informace o neúspěšném procesu.
- je nakonfigurován pomocí tohoto souboru:
/etc/abrt/abrt-action-save-package-data.conf
Častým kamenem úrazu při jeho používání je změna tohoto řádku v konfiguračním souboru:
ProcessUnpackaged = no
Změňte toto na yes, abyste zachytili základní soubory z vašich homebrew procesů, jinak budou zachycovány pouze základní soubory z programů nainstalovaných správcem balíčků.
[UPRAVIT odpověď na to, jak používat coredump]Chcete-li prozkoumat výpis jádra, udělám toto:
cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump
Možná existuje lepší způsob, jak to udělat, ale gdb mi dobře posloužil, takže jsem nehledal jiné způsoby. Stačí nahradit XXXXXXX složkou, která obsahuje váš soubor coredump. Příkaz gdb je připraven k vyjmutí a vložení.
Reference:
Kniha Redhat
Fórum CentOS