Skąd Ubuntu 14.04 upuszcza podstawowe pliki?

20

Włączyłem nieograniczony rozmiar pliku podstawowego za pomocą ulimit:

ulimit -a
core file size          (blocks, -c) unlimited
...

Wydaje mi się, że uruchomiłem zrzut pamięci, ale nie mogę zlokalizować pliku w moim domu, var / ... itd ...

Czy wiesz, gdzie Ubuntu konfiguruje lokalizację zrzutu pamięci?

jcalfee314
źródło
@djf OP nie określił, który program powoduje zrzuty pamięci. To może nie być kod programisty. Może to być Jedność dla wszystkich, co wiemy.
Rich Homolka
1
Jak to jest pytanie SuperUser? Chodzi o uruchomienie debuggera, którego używają tylko programiści. To powinno być migrowane z powrotem do SO.
Homer6

Odpowiedzi:

7

Myślę, że jest to bardziej kwestia jądra Linuksa niż konkretna rzecz Ubuntu. Sprawdzić

cat /proc/sys/kernel/core_pattern

Sprawdź stronę podręcznika głównego pliku

Rich Homolka
źródło
13
To nie mówi ci, gdzie umieszcza plik. Pytanie o nazwie Ubuntu 14.04. Nie jest wcale jasne, wykonując polecenie, w /proc/sys/kernel/core_patternktórym można znaleźć plik.
jcalfee314
1
Dla mnie ten pseudoplik jądra core_pattern odwołuje się do programu o nazwie „apport” ... który nie ma strony podręcznika ani bardzo pomocnego wyjścia. Więc wciąż szukam moich zrzuconych rdzeni. :(
gojomo
1
apport jest standardowym programem do obsługi rdzeni Linuksa, który zazwyczaj przekazuje z powrotem do twojej dystrybucji.
kkron
Jak otworzyć ten folder? cd /usr/share/apport/apportnie działa
mrgloom
32

Domyślnie jądro Ubuntu jest skonfigurowane do używania apport do rejestrowania zrzutów rdzeniowych. Możesz to zmienić, nadpisując /proc/sys/kernel/core_pattern, sprawdź sekcję „Nazewnictwo plików zrzutu pamięci” w man corecelu uzyskania szczegółowych informacji. Na przykład:

echo '/tmp/core.%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern

Apport zapisuje zrzuty pamięci /var/crash/_path_to_program.userid.crash, ale zrobi to tylko w przypadku aplikacji zainstalowanych z głównych repozytoriów ubuntu apt.

Więcej informacji na temat apport: https://wiki.ubuntu.com/Apport

maccam94
źródło
Aby zapisać zrzuty pamięci również dla programów innych niż pakiety, utwórz plik o nazwie ~ / .config / apport / settings z następującą zawartością: [main]
unpackaged
Modyfikacja / proc / sys / kernel / core_pattern nie działa dla mnie w Ubuntu 18.04
greuze
1

Na Ubuntu 16.04.3 LTS mój zrzut pamięci głównej znajdował się pod adresem:

/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

Aby go uruchomić gdb, możesz uruchomić:

apt install gdb gdb /path/to/your/binary/application-name /var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

Homer6
źródło