Rechercher une page de manuel
core
Langue: pl
Version: 2006\-04\-03 (ubuntu - 01/11/07)
Section: 5 (Format de fichier)
NAZWA
core - plik zrzutu pamiêciOPIS
Dla pewnych sygna³ów domy¶ln± akcj± procesu jest zakoñczenie dzia³ania i utworzenie pliku zrzutu pamiêci (core), czyli pliku zawieraj±cego obraz pamiêci procesu w czasie, gdy zosta³ on zakoñczony. Listê sygna³ów powoduj±cych utworzenie pliku core przez proces mo¿na znale¼æ w signal(7).Proces mo¿e ustawiæ miêkki limit zasobów RLIMIT_CORE, aby ograniczyæ maksymalny rozmiar pliku, który zostanie utworzony po otrzymaniu sygna³u powoduj±cego zrzut pamiêci; szczegó³owe informacje mo¿na znale¼æ w getrlimit(2).
W nastêpuj±cych wypadkach plik zrzutu pamiêci nie bêdzie utworzony:
- *
- Proces nie ma uprawnieñ, aby zapisaæ plik zrzutu pamiêci (Domy¶lnie plik ten nazywa siê core i jest tworzony w bie¿±cym katalogu roboczym procesu. Nazwê tê mo¿na zmieniæ - patrz ni¿ej). Zapisywanie pliku zrzutu nie powiedzie siê równie¿ wtedy, gdy prawa katalogu, w którym ten plik mia³by byæ utworzony, nie pozwalaj± na zapis do niego lub gdy plik o tej samej nazwie istnieje i nie jest zapisywalny lub nie jest zwyk³ym plikiem (ale np. katalogiem lub dowi±zaniem symbolicznym).
- *
- Nie istnieje katalog, w którym mia³by byæ utworzony plik zrzutu pamiêci.
- *
- Limity zasobów RLIMIT_CORE lub RLIMIT_FSIZE dla procesu s± ustawione na zero (patrz getrlimit(2)).
- *
- Nie s± ustawione uprawnienia do odczytu pliku binarnego uruchomionego przez proces.
- *
- Proces uruchomi³ program z flag± set-user-ID (set-group-ID), którego w³a¶cicielem jest u¿ytkownik (grupa) inny ni¿ rzeczywisty u¿ytkownik (grupa) procesu. (Jednak¿e patrz w prctl(2) opis operacji PR_SET_DUMPABLE oraz w proc(5) opis pliku /proc/sys/fs/suid_dumpable).
Nazwy plików zrzutu pamiêci
Domy¶lnie plik zrzutu pamiêci nazywa siê core, jednak¿e w pliku </proc/sys/kernel/core_pattern> (wprowadzonym w Linuksie 2.5) mo¿na zdefiniowaæ szablon, który bêdzie u¿yty do nazywania plików zrzutu pamiêci. Szablon ten mo¿e zawieraæ specjalne znaczniki zaczynaj±ce siê od %, które podczas tworzenia pliku zrzutu bêd± zast±pione nastêpuj±cymi warto¶ciami:
%% pojedynczy znak %
%p PID procesu zrzucaj±cego pamiêæ
%u rzeczywisty UID tego procesu
%g rzeczywisty GID tego procesu
%s numer sygna³u wywo³uj±cego zrzut pamiêci
%t czas zrzutu (sekundy od pó³nocy 1 stycznia 1970)
%h nazwa komputera (to samo co 'nodename'
zwracane przez uname(2))
%e nazwa pliku wykonywalnego
Je¶li szablon koñczy siê pojedynczym znakiem %, to znak ten zostanie usuniêty z nazwy pliku zrzutu. Podobnie zostan± usuniête wszelkie inne kombinacje % i znaku ni¿ te, wymienione powy¿ej. Wszystkie inne znaki szablonu stan± siê czê¶ci± nazwy pliku zrzutu. Maksymalna d³ugo¶æ wygenerowanej nazwy pliku wynosi 64 bajty. Domy¶ln± warto¶ci± jest "core". W celu zachowania wstecznej zgodno¶ci, je¶li /proc/sys/kernel/core_pattern nie zawiera "%p", a /proc/sys/kernel/core_uses_pid (patrz ni¿ej) ma niezerow± warto¶æ, to .PID bêdzie do³±czony do nazwy pliku zrzutu. Linux 2.4 zamiast pliku /proc/sys/kernel/core_pattern dostarcza³ bardziej prymitywn± metodê kontrolowania nazwy pliku zrzutu pamiêci. Gdy plik /proc/sys/kernel/core_uses_pid zawiera warto¶æ 0, plik zrzutu pamiêci ma po prostu nazwê core. Gdy plik ten zawiera warto¶æ niezerow±, plik zrzutu pamiêci bêdzie zawiera³ w swojej nazwie ID procesu, w postaci core.PID.
UWAGI
Aby uzyskaæ zrzut pamiêci dzia³aj±cego procesu, mo¿na u¿yæ polecenia gcore programu gdb(1).Je¿eli pamiêæ zrzuca proces wielow±tkowy (albo - bardziej precyzyjnie - proces, który dzieli sw± pamiêæ z innym procesem utworzonym z flag± CLONE_VM funkcji clone(2)), to ID procesu zawsze bêdzie do³±czone do nazwy pliku zrzutu, chyba ¿e owo ID procesu ju¿ wystêpuje w nazwie pliku, poniewa¿ w pliku /proc/sys/kernel/core_pattern u¿yto specyfikatora %p.
ZOBACZ TAK¯E
gdb(1), getrlimit(2), prctl(2), sigaction(2), elf(5), proc(5), signal(7)Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre