Scroll to navigation

CORE(5) п═я┐п╨п╬п╡п╬п╢я│я┌п╡п╬ п©я─п╬пЁя─п╟п╪п╪п╦я│я┌п╟ Linux CORE(5)

п≤п°п╞

core - я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦ п©я─п╬я├п╣я│я│п╟

п·п÷п≤п║п░п²п≤п∙

п■п╩я▐ п╬п©я─п╣п╢п╣п╩я▒п╫п╫я▀я┘ я│п╦пЁп╫п╟п╩п╬п╡ п╢п╣п╧я│я┌п╡п╦п╣п╪ п©п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌ я▐п╡п╩я▐п╣я┌я│я▐ п╥п╟п╡п╣я─я┬п╣п╫п╦п╣ п©я─п╬я├п╣я│я│п╟ п╦ я│п╬п╥п╢п╟п╫п╦п╣ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦ п©я─п╬я├п╣я│я│п╟ — п╢п╦я│п╨п╬п╡п╬пЁп╬ я└п╟п╧п╩п╟, я│п╬п╢п╣я─п╤п╟я┴п╣пЁп╬ п╬п╠я─п╟п╥ п©п╟п╪я▐я┌п╦ п©я─п╬я├п╣я│я│п╟ п╫п╟ п╪п╬п╪п╣п╫я┌ п╥п╟п╡п╣я─я┬п╣п╫п╦я▐. п╜я┌п╬я┌ п╬п╠я─п╟п╥ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫ п╡ п╬я┌п╩п╟п╢я┤п╦п╨п╣ (п╫п╟п©я─п╦п╪п╣я─, gdb(1)) п╢п╩я▐ п╦я│я│п╩п╣п╢п╬п╡п╟п╫п╦я▐ я│п╬я│я┌п╬я▐п╫п╦я▐ п©я─п╬пЁя─п╟п╪п╪я▀ п╫п╟ п╪п╬п╪п╣п╫я┌ п╣я▒ п╥п╟п╡п╣я─я┬п╣п╫п╦я▐. п║п©п╦я│п╬п╨ я│п╦пЁп╫п╟п╩п╬п╡, п╨п╬я┌п╬я─я▀п╣ п©я─п╦п╡п╬п╢я▐я┌ п╨ я│п╬п╥п╢п╟п╫п╦я▌ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦ п©я─п╬я├п╣я│я│п╟, п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ п╡ signal(7).

п÷я─п╬я├п╣я│я│ п╪п╬п╤п╣я┌ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я│п╡п╬п╧ п©я─п╬пЁя─п╟п╪п╪п╫я▀п╧ п©я─п╣п╢п╣п╩ я─п╣я│я┐я─я│п╟ RLIMIT_CORE п╡ п╪п╟п╨я│п╦п╪п╟п╩я▄п╫п╬п╣ п╥п╫п╟я┤п╣п╫п╦п╣ п©п╬ я─п╟п╥п╪п╣я─я┐ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟, п╨п╬я┌п╬я─я▀п╧ п╠я┐п╢п╣я┌ я│п╬п╥п╢п╟п╫, п╣я│п╩п╦ п©я─п╬я├п╣я│я│ п©п╬п╩я┐я┤п╦я┌ я│п╦пЁп╫п╟п╩ "п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦"; п©п╬п╢я─п╬п╠п╫п╣п╧ я│п╪п╬я┌я─п╦я┌п╣ п╡ getrlimit(2).

п∙я│я┌я▄ п╫п╣я│п╨п╬п╩я▄п╨п╬ п╬п╠я│я┌п╬я▐я┌п╣п╩я▄я│я┌п╡, п©я─п╦ п╨п╬я┌п╬я─я▀я┘ я└п╟п╧п╩ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦ п╫п╣ я│п╬п╥п╢п╟я▒я┌я│я▐:

  • пё п©я─п╬я├п╣я│я│п╟ п╫п╣я┌ п©я─п╟п╡ п╫п╟ п╥п╟п©п╦я│я▄ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟. (п÷п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌ я└п╟п╧п╩ п╢п╟п╪п©п╟ п╫п╟п╥я▀п╡п╟п╣я┌я│я▐ core п╦ я│п╬п╥п╢п╟я▒я┌я│я▐ п╡ я┌п╣п╨я┐я┴п╣п╪ я─п╟п╠п╬я┤п╣п╪ п╨п╟я┌п╟п╩п╬пЁп╣. п÷п╬п╢я─п╬п╠п╫п╣п╧ п╬п╠ п╦п╪п╣п╫п╬п╡п╟п╫п╦п╦ я│п╪п╬я┌я─п╦я┌п╣ п╢п╟п╩п╣п╣.) п≈п╟п©п╦я│я▄ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ п╥п╟п╡п╣я─я┬п╦я┌я│я▐ п╫п╣я┐п╢п╟я┤п╫п╬, п╣я│п╩п╦ п╨п╟я┌п╟п╩п╬пЁ, п╡ п╨п╬я┌п╬я─п╬п╪ п╬п╫ я│п╬п╥п╢п╟я▒я┌я│я▐, п╫п╣п╢п╬я│я┌я┐п©п╣п╫ п╢п╩я▐ п╥п╟п©п╦я│п╦, п╦п╩п╦ п╣я│п╩п╦ я└п╟п╧п╩ я│ я┌п╟п╨п╦п╪ п╤п╣ п╦п╪п╣п╫п╣п╪ я┐п╤п╣ я│я┐я┴п╣я│я┌п╡я┐п╣я┌ п╦ п╫п╣п╢п╬я│я┌я┐п©п╣п╫ п╢п╩я▐ п╥п╟п©п╦я│п╦ п╦п╩п╦ я█я┌п╬ п╫п╣п╬п╠я▀я┤п╫я▀п╧ я└п╟п╧п╩ (п╫п╟п©я─п╦п╪п╣я─, я█я┌п╬ п╨п╟я┌п╟п╩п╬пЁ п╦п╩п╦ я│п╦п╪п╡п╬п╩я▄п╫п╟я▐ я│я│я▀п╩п╨п╟).
  • п║я┐я┴п╣я│я┌п╡я┐п╣я┌ я└п╟п╧п╩ (п╬п╠я▀я┤п╫я▀п╧, п╢п╬я│я┌я┐п©п╫я▀п╧ п╫п╟ п╥п╟п©п╦я│я▄) я│ п╦п╪п╣п╫п╣п╪, п╨п╬я┌п╬я─п╬п╣ п╠я┐п╢п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╬ п╢п╩я▐ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦, п╫п╬ п╣я│я┌я▄ п╠п╬п╩п╣п╣ п╬п╢п╫п╬п╧ п╤я▒я│я┌п╨п╬п╧ я│я│я▀п╩п╨п╦ п╫п╟ я█я┌п╬я┌ я└п╟п╧п╩.
  • п╓п╟п╧п╩п╬п╡п╟я▐ я│п╦я│я┌п╣п╪п╟, пЁп╢п╣ п╢п╬п╩п╤п╣п╫ п╠я▀я┌я▄ я│п╬п╥п╢п╟п╫ я└п╟п╧п╩ п╢п╟п╪п©п╟, п©п╣я─п╣п©п╬п╩п╫п╣п╫п╟, п╥п╟п╨п╬п╫я┤п╦п╩п╦я│я▄ п╦п╫п╬п╢я▀, п╬п╫п╟ я│п╪п╬п╫я┌п╦я─п╬п╡п╟п╫п╟ я┌п╬п╩я▄п╨п╬ п╢п╩я▐ я┤я┌п╣п╫п╦я▐, п╢п╬я│я┌п╦пЁп╫я┐я┌ п©я─п╣п╢п╣п╩ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩я▄я│п╨п╬п╧ п╨п╡п╬я┌я▀.
  • п п╟я┌п╟п╩п╬пЁ, п╡ п╨п╬я┌п╬я─п╬п╪ п╢п╬п╩п╤п╣п╫ п╠я▀я┌я▄ я│п╬п╥п╢п╟п╫ я└п╟п╧п╩ п╢п╟п╪п©п╟, п╫п╣ я│я┐я┴п╣я│я┌п╡я┐п╣я┌.
  • п÷я─п╣п╢п╣п╩я▀ я─п╣я│я┐я─я│п╬п╡ RLIMIT_CORE (я─п╟п╥п╪п╣я─ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟) п╦п╩п╦ RLIMIT_FSIZE (я─п╟п╥п╪п╣я─ я└п╟п╧п╩п╟) п╢п╩я▐ п©я─п╬я├п╣я│я│п╟ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫я▀ п╡ п╫п╬п╩я▄; я│п╪п╬я┌я─п╦я┌п╣ getrlimit(2) п╦ п╢п╬п╨я┐п╪п╣п╫я┌п╟я├п╦я▌ п╫п╟ п╨п╬п╪п╟п╫п╢я┐ п╬п╠п╬п╩п╬я┤п╨п╦ ulimit (limit п╡ csh(1)).
  • п≤я│п©п╬п╩п╫я▐п╣п╪я▀п╧ п©я─п╬я├п╣я│я│п╬п╪ я└п╟п╧п╩ п╫п╣п╢п╬я│я┌я┐п©п╣п╫ п╫п╟ я┤я┌п╣п╫п╦п╣.
  • п÷я─п╬я├п╣я│я│ п╡я▀п©п╬п╩п╫я▐п╣я┌ п©я─п╬пЁя─п╟п╪п╪я┐ я│ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫п╫я▀п╪п╦ п╠п╦я┌п╬п╪ set-user-ID (set-group-ID), п╨п╬я┌п╬я─я▀п╧ п©я─п╦п╫п╟п╢п╩п╣п╤п╦я┌ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩я▌ (пЁя─я┐п©п©п╣) п╫п╣ я│п╬п╡п©п╟п╢п╟я▌я┴п╣п╧ я│ ID я─п╣п╟п╩я▄п╫п╬пЁп╬ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩я▐ (пЁя─я┐п©п©я▀) п©я─п╬я├п╣я│я│п╟. (п·п╢п╫п╟п╨п╬ п©п╬я│п╪п╬я┌я─п╦я┌п╣ п╬п©п╦я│п╟п╫п╦п╣ п╬п©п╣я─п╟я├п╦п╦ prctl(2) PR_SET_DUMPABLE, п╦ п╬п©п╦я│п╟п╫п╦п╣ я└п╟п╧п╩п╟ /proc/sys/fs/suid_dumpable п╡ proc(5).)

п≤п╪п╣п╫п╬п╡п╟п╫п╦п╣ я└п╟п╧п╩п╬п╡ п╢п╟п╪п©п╬п╡ п©п╟п╪я▐я┌п╦

п÷п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌, я└п╟п╧п╩я┐ я│ п╢п╟п╪п©п╬п╪ п©п╟п╪я▐я┌п╦ п©я─п╦я│п╡п╟п╦п╡п╟п╣я┌я│я▐ п╦п╪я▐ core, п╫п╬ я│ п©п╬п╪п╬я┴я▄я▌ я└п╟п╧п╩п╟ /proc/sys/kernel/core_pattern (п╫п╟я┤п╦п╫п╟я▐ я│ Linux 2.6 п╦ 2.4.21) п╪п╬п╤п╫п╬ п╥п╟п╢п╟я┌я▄ я┬п╟п╠п╩п╬п╫, п╨п╬я┌п╬я─я▀п╧ п╠я┐п╢п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫ п╢п╩я▐ п╦п╪п╣п╫п╬п╡п╟п╫п╦я▐ я└п╟п╧п╩п╬п╡ п╢п╟п╪п©п╬п╡ п©п╟п╪я▐я┌п╦. п╗п╟п╠п╩п╬п╫ п╪п╬п╤п╣я┌ я│п╬п╢п╣я─п╤п╟я┌я▄ п╬п©п╦я│п╟я┌п╣п╩п╦ %, п╨п╬я┌п╬я─я▀п╣ п╥п╟п╪п╣п╫я▐я▌я┌я│я▐ п╫п╟ я│п╩п╣п╢я┐я▌я┴п╦п╣ п╥п╫п╟я┤п╣п╫п╦я▐ п©я─п╦ я│п╬п╥п╢п╟п╫п╦п╦ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟:

%%
п╬п╢п╦п╫п╬я┤п╫я▀п╧ я│п╦п╪п╡п╬п╩ %
%p
PID п©я─п╬я├п╣я│я│п╟, я│ п╨п╬я┌п╬я─п╬пЁп╬ п╢п╣п╩п╟п╣я┌я│я▐ п╢п╟п╪п©
%u
(я┤п╦я│п╩п╬) я─п╣п╟п╩я▄п╫я▀п╧ UID п©я─п╬я├п╣я│я│п╟, я│ п╨п╬я┌п╬я─п╬пЁп╬ п╢п╣п╩п╟п╣я┌я│я▐ п╢п╟п╪п©
%g
(я┤п╦я│п╩п╬) я─п╣п╟п╩я▄п╫я▀п╧ GID п©я─п╬я├п╣я│я│п╟, я│ п╨п╬я┌п╬я─п╬пЁп╬ п╢п╣п╩п╟п╣я┌я│я▐ п╢п╟п╪п©
%s
п╫п╬п╪п╣я─ я│п╦пЁп╫п╟п╩п╟, п╡я▀п╥п╡п╟п╡я┬п╣пЁп╬ я│п╬п╥п╢п╟п╫п╦п╣ п╢п╟п╪п©п╟
%t
п╡я─п╣п╪я▐ п╢п╟п╪п©п╟, п╡я▀я─п╟п╤п╟п╣я┌я│я▐ п╡ я│п╣п╨я┐п╫п╢п╟я┘ я│ п╫п╟я┤п╟п╩п╟ я█п©п╬я┘п╦, 1970-01-01 00:00:00 +0000 (UTC)
%h
п╦п╪я▐ я┐п╥п╩п╟ (п╨п╟п╨ nodename, п╡п╬п╥п╡я─п╟я┴п╟п╣п╪п╬п╣ uname(2))
%e
п╦п╪я▐ п╦я│п©п╬п╩п╫я▐п╣п╪п╬пЁп╬ я└п╟п╧п╩п╟ (п╠п╣п╥ п©я┐я┌п╦)
%c
п©я─п╬пЁя─п╟п╪п╪п╫я▀п╧ п©я─п╣п╢п╣п╩ я─п╟п╥п╪п╣я─п╟ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ я─я┐я┘п╫я┐п╡я┬п╣пЁп╬ п©я─п╬я├п╣я│я│п╟ (п╫п╟я┤п╦п╫п╟я▐ я│ Linux 2.6.24)

п·п╢п╦п╫п╬я┤п╫я▀п╧ % п╡ п╨п╬п╫я├п╣ я┬п╟п╠п╩п╬п╫п╟ п╬я┌п╠я─п╟я│я▀п╡п╟п╣я┌я│я▐ п╬я┌ п╦п╪п╣п╫п╦ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ п╡п╪п╣я│я┌п╣ я│ я│п╦п╪п╡п╬п╩п╬п╪ п©п╬я│п╩п╣ %, п╬я┌п╩п╦я┤п╫я▀п╪ п╬я┌ п©п╣я─п╣я┤п╦я│п╩п╣п╫п╫я▀я┘ я─п╟п╫п╣п╣. п▓я│п╣ п╬я│я┌п╟п╩я▄п╫я▀п╣ я│п╦п╪п╡п╬п╩я▀ п╡ я┬п╟п╠п╩п╬п╫п╣ п╡я│я┌п╟п╡п╩я▐я▌я┌я│я▐ п╡ п╦п╪я▐ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ п╨п╟п╨ п╣я│я┌я▄. п╗п╟п╠п╩п╬п╫ п╪п╬п╤п╣я┌ я│п╬п╢п╣я─п╤п╟я┌я▄ я│п╦п╪п╡п╬п╩я▀ '/', п╨п╬я┌п╬я─я▀п╣ п╦п╫я┌п╣я─п©я─п╣я┌п╦я─я┐я▌я┌я│я▐ п╨п╟п╨ я─п╟п╥п╢п╣п╩п╦я┌п╣п╩п╦ п╢п╩я▐ п╦п╪я▒п╫ п╨п╟я┌п╟п╩п╬пЁп╬п╡. п°п╟п╨я│п╦п╪п╟п╩я▄п╫я▀п╧ я─п╟п╥п╪п╣я─ п©п╬п╩я┐я┤п╟п╣п╪п╬пЁп╬ п╦п╪п╣п╫п╦ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ я─п╟п╡п╣п╫ 128 п╠п╟п╧я┌п╟п╪ (64 п╠п╟п╧я┌п╟ п╢п╩я▐ я▐п╢п╣я─ п╢п╬ п╡п╣я─я│п╦п╦ 2.6.19). п≈п╫п╟я┤п╣п╫п╦п╣ п©п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌ п╡ я█я┌п╬п╪ я└п╟п╧п╩п╣ я─п╟п╡п╫п╬ "core". п■п╩я▐ п╬п╠я─п╟я┌п╫п╬п╧ я│п╬п╡п╪п╣я│я┌п╦п╪п╬я│я┌п╦, п╣я│п╩п╦ /proc/sys/kernel/core_pattern п╫п╣ я│п╬п╢п╣я─п╤п╦я┌ "%p" п╦ п╥п╫п╟я┤п╣п╫п╦п╣ п╡ /proc/sys/kernel/core_uses_pid (я│п╪. п╢п╟п╩п╣п╣) п╫п╣ я─п╟п╡п╫п╬ п╫я┐п╩я▌, я┌п╬ п╨ п╦п╪п╣п╫п╦ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ п╠я┐п╢п╣я┌ п╢п╬п╠п╟п╡п╩п╣п╫ .PID.

п²п╟я┤п╦п╫п╟я▐ я│ п╡п╣я─я│п╦п╦ 2.4, Linux я┌п╟п╨п╤п╣ п©я─п╣п╢п╬я│я┌п╟п╡п╩я▐п╣я┌ п╠п╬п╩п╣п╣ п©я─п╦п╪п╦я┌п╦п╡п╫я▀п╧ п╪п╣я┌п╬п╢ я┐п©я─п╟п╡п╩п╣п╫п╦я▐ п╦п╪п╣п╫п╣п╪ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦. п∙я│п╩п╦ я└п╟п╧п╩ /proc/sys/kernel/core_uses_pid я│п╬п╢п╣я─п╤п╦я┌ п╥п╫п╟я┤п╣п╫п╦п╣ 0, я┌п╬ я└п╟п╧п╩ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦ п©я─п╬я│я┌п╬ п╫п╟п╥я▀п╡п╟п╣я┌я│я▐ core. п∙я│п╩п╦ п╡ я█я┌п╬п╪ я└п╟п╧п╩п╣ я│п╬п╢п╣я─п╤п╦я┌я│я▐ п╫п╣п╫я┐п╩п╣п╡п╬п╣ п╥п╫п╟я┤п╣п╫п╦п╣, я┌п╬ п╨ п╦п╪п╣п╫п╦ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟ п╢п╬п╠п╟п╡п╦я┌я│я▐ ID п©я─п╬я├п╣я│я│п╟ (п╡ п╡п╦п╢п╣ core.PID).

п÷п╣я─п╣п╢п╟я┤п╟ п╢п╟п╪п©п╬п╡ п©п╟п╪я▐я┌п╦ п╡ п©я─п╬пЁя─п╟п╪п╪я┐ я┤п╣я─п╣п╥ п╨п╟п╫п╟п╩

п²п╟я┤п╦п╫п╟я▐ я│ п╡п╣я─я│п╦п╦ 2.6.19, Linux п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ п╟п╩я▄я┌п╣я─п╫п╟я┌п╦п╡п╫я▀п╧ я│п╦п╫я┌п╟п╨я│п╦я│ я└п╟п╧п╩п╟ /proc/sys/kernel/core_pattern. п∙я│п╩п╦ п©п╣я─п╡я▀п╪ я│п╦п╪п╡п╬п╩п╬п╪ п╡ я█я┌п╬п╪ я└п╟п╧п╩п╣ п╠я┐п╢п╣я┌ я│п╦п╪п╡п╬п╩ п╨п╟п╫п╟п╩п╟ (|), я┌п╬ п╬я│я┌п╟п╡я┬п╟я▐я│я▐ я│я┌я─п╬п╨п╟ п╡п╬я│п©я─п╦п╫п╦п╪п╟п╣я┌я│я▐ п╨п╟п╨ п©я─п╬пЁя─п╟п╪п╪п╟ п╨п╬я┌п╬я─я┐я▌ п╫я┐п╤п╫п╬ п╥п╟п©я┐я│я┌п╦я┌я▄. п▓п╪п╣я│я┌п╬ п╥п╟п©п╦я│п╦ я└п╟п╧п╩п╟ п╫п╟ п╢п╦я│п╨ п╢п╟п╪п© п©п╟п╪я▐я┌п╦ п©п╣я─п╣п╢п╟я▒я┌я│я▐ п╡ я│я┌п╟п╫п╢п╟я─я┌п╫я▀п╧ п╡п╡п╬п╢ п©я─п╬пЁя─п╟п╪п╪я▀. п·я┌п╪п╣я┌п╦п╪ я│п╩п╣п╢я┐я▌я┴п╦п╣ п╪п╬п╪п╣п╫я┌я▀:

  • п÷я─п╬пЁя─п╟п╪п╪п╟ п╢п╬п╩п╤п╫п╟ п╠я▀я┌я▄ п╥п╟п╢п╟п╫п╟ п╟п╠я│п╬п╩я▌я┌п╫я▀п╪ п╦п╪п╣п╫п╣п╪ я└п╟п╧п╩п╟ (п╦п╩п╦ п©я┐я┌я▒п╪ п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬я─п╫п╣п╡п╬пЁп╬ п╨п╟я┌п╟п╩п╬пЁп╟, /), п╦ п╦п╪я▐ п╢п╬п╩п╤п╫п╟ я│я─п╟п╥я┐ я│п╩п╣п╢п╬п╡п╟я┌я▄ п╥п╟ я│п╦п╪п╡п╬п╩п╬п╪ '|'.
  • п║п╬п╥п╢п╟п╡п╟п╣п╪я▀п╧ п©я─п╬я├п╣я│я│ п╢п╩я▐ п╥п╟п©я┐я│п╨п╟ п©я─п╬пЁя─п╟п╪п╪я▀ п╠я┐п╢п╣я┌ п╡я▀п©п╬п╩п╫я▐я┌я▄я│я▐ я│ п©я─п╟п╡п╟п╪п╦ пЁя─я┐п©п©я▀ п╦ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩я▐ root.
  • п÷я─п╬пЁя─п╟п╪п╪п╣ п╪п╬п╤п╫п╬ п©п╣я─п╣п╢п╟я┌я▄ п╟я─пЁя┐п╪п╣п╫я┌я▀ п╨п╬п╪п╟п╫п╢п╫п╬п╧ я│я┌я─п╬п╨п╦ (п╫п╟я┤п╦п╫п╟я▐ я│ п╡п╣я─я│п╦п╦ 2.6.24), п╬я┌п╢п╣п╩я▐я▐ п╦я┘ п©я─п╬п╠п╣п╩п╟п╪п╦ (п╪п╟п╨я│п╦п╪п╟п╩я▄п╫я▀п╧ я─п╟п╥п╪п╣я─ я│я┌я─п╬п╨п╦ 128 п╠п╟п╧я┌).
  • п▓ п╟я─пЁя┐п╪п╣п╫я┌п╟я┘ п╨п╬п╪п╟п╫п╢п╫п╬п╧ я│я┌я─п╬п╨п╦ п╪п╬пЁя┐я┌ п╠я▀я┌я▄ п╬п©п╦я│п╟я┌п╣п╩п╦ %, п©п╣я─п╣я┤п╦я│п╩п╣п╫п╫я▀п╣ я─п╟п╫п╣п╣. п²п╟п©я─п╦п╪п╣я─, я┤я┌п╬п╠я▀ п©п╣я─п╣п╢п╟я┌я▄ PID п©я─п╬я├п╣я│я│п╟, п╢п╩я▐ п╨п╬я┌п╬я─п╬пЁп╬ п╢п╣п╩п╟п╣я┌я│я▐ п╢п╟п╪п©, я┐п╨п╟п╤п╦я┌п╣ п╡ п╟я─пЁя┐п╪п╣п╫я┌п╣ %p.

пёп©я─п╟п╡п╩п╣п╫п╦п╣ п╬я┌п╬п╠я─п╟п╤п╣п╫п╦я▐п╪п╦, п╥п╟п©п╦я│я▀п╡п╟п╣п╪я▀п╪п╦ п╡ п╢п╟п╪п© п©п╟п╪я▐я┌п╦

п²п╟я┤п╦п╫п╟я▐ я│ п╡п╣я─я│п╦п╦ 2.6.23, п╡ Linux п©п╬я▐п╡п╦п╩я│я▐ я└п╟п╧п╩ /proc/PID/coredump_filter, п╨п╬я┌п╬я─я▀п╧ п╬п©я─п╣п╢п╣п╩я▐п╣я┌ п╨п╟п╨п╦п╣ я│п╣пЁп╪п╣п╫я┌я▀ п©п╟п╪я▐я┌п╦ п╥п╟п©п╦я│я▀п╡п╟я▌я┌я│я▐ п╡ я└п╟п╧п╩ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦ п©я─п╦ п╬я┌п╨п╩п╦п╨п╣ п╫п╟ я│п╬п╠я▀я┌п╦п╣ я│п╬п╥п╢п╟п╫п╦я▐ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦ п©я─п╬я├п╣я│я│п╟ я│ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┴п╦п╪ ID п©я─п╬я├п╣я│я│п╟.

п≈п╫п╟я┤п╣п╫п╦п╣ п╡ я└п╟п╧п╩п╣ я▐п╡п╩я▐п╣я┌я│я▐ п╠п╦я┌п╬п╡п╬п╧ п╪п╟я│п╨п╬п╧ я┌п╦п©п╬п╡ п╬я┌п╬п╠я─п╟п╤п╣п╫п╦п╧ п©п╟п╪я▐я┌п╦ (я│п╪. mmap(2)). п∙я│п╩п╦ п╠п╦я┌ п╡ п╪п╟я│п╨п╣ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫, я┌п╬ п╡я▀п©п╬п╩п╫я▐п╣я┌я│я▐ п╢п╟п╪п© п╬я┌п╬п╠я─п╟п╤п╣п╫п╦я▐ п©п╟п╪я▐я┌п╦ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┴п╣пЁп╬ я┌п╦п©п╟; п╦п╫п╟я┤п╣ п╢п╟п╪п© п╫п╣ п╡я▀п©п╬п╩п╫я▐п╣я┌я│я▐. п▒п╦я┌я▀ п╡ я█я┌п╬п╪ я└п╟п╧п╩п╣ п╦п╪п╣я▌я┌ я│п╩п╣п╢я┐я▌я┴п╣п╣ п╥п╫п╟я┤п╣п╫п╦п╣:

п╠п╦я┌ 0
п▓я▀п©п╬п╩п╫я▐я┌я▄ п╢п╟п╪п© п╟п╫п╬п╫п╦п╪п╫я▀я┘ я┤п╟я│я┌п╫я▀я┘ п╬я┌п╬п╠я─п╟п╤п╣п╫п╦п╧.
п╠п╦я┌ 1
п▓я▀п©п╬п╩п╫я▐я┌я▄ п╢п╟п╪п© п╟п╫п╬п╫п╦п╪п╫я▀я┘ п╬п╠я┴п╦я┘ п╬я┌п╬п╠я─п╟п╤п╣п╫п╦п╧.
п╠п╦я┌ 2
п▓я▀п©п╬п╩п╫я▐я┌я▄ п╢п╟п╪п© я┤п╟я│я┌п╫я▀я┘ п╬я┌п╬п╠я─п╟п╤п╣п╫п╦п╧ п╦п╥ п╡п╦я─я┌я┐п╟п╩я▄п╫п╬п╧ п©п╟п╪я▐я┌п╦ (file-backed).
п╠п╦я┌ 3
п▓я▀п©п╬п╩п╫я▐я┌я▄ п╢п╟п╪п© п╬п╠я┴п╦я┘ п╬я┌п╬п╠я─п╟п╤п╣п╫п╦п╧ п╦п╥ п╡п╦я─я┌я┐п╟п╩я▄п╫п╬п╧ п©п╟п╪я▐я┌п╦ (file-backed).

п≈п╫п╟я┤п╣п╫п╦п╣п╪ п©п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌ coredump_filter я▐п╡п╩я▐п╣я┌я│я▐ п╥п╫п╟я┤п╣п╫п╦п╣ 0x3; п╬п╫п╬ п╬я┌я─п╟п╤п╟п╣я┌ я┌я─п╟п╢п╦я├п╦п╬п╫п╫п╬п╣ п©п╬п╡п╣п╢п╣п╫п╦п╣ Linux п╦ п╬п╥п╫п╟я┤п╟п╣я┌ я┌п╬п╩я▄п╨п╬ п╢п╟п╪п© п╢п╩я▐ п╟п╫п╬п╫п╦п╪п╫я▀я┘ я│п╣пЁп╪п╣п╫я┌п╬п╡ п©п╟п╪я▐я┌п╦.

п■п╩я▐ я│я┌я─п╟п╫п╦я├ п╡п╡п╬п╢п╟-п╡я▀п╡п╬п╢п╟, п╬я┌п╬п╠я─п╟п╤я▒п╫п╫я▀я┘ п╡ п©п╟п╪я▐я┌я▄, я┌п╟п╨п╦я┘ п╨п╟п╨ я└я─п╣п╧п╪-п╠я┐я└п╣я─, п╢п╟п╪п© п╫п╦п╨п╬пЁп╢п╟ п╫п╣ п╡я▀п©п╬п╩п╫я▐п╣я┌я│я▐, п╟ п╡п╦я─я┌я┐п╟п╩я▄п╫я▀п╣ я│я┌я─п╟п╫п╦я├я▀ DSO п©п╬п©п╟п╢п╟я▌я┌ п╡ п╢п╟п╪п© п╡я│п╣пЁп╢п╟, п╫п╣п╥п╟п╡п╦я│п╦п╪п╬ п╬я┌ п╥п╫п╟я┤п╣п╫п╦я▐ coredump_filter.

п■п╬я┤п╣я─п╫п╦п╧ п©я─п╬я├п╣я│я│, я│п╬п╥п╢п╟п╫п╫я▀п╧ fork(2), п╫п╟я│п╩п╣п╢я┐п╣я┌я│я▐ п╥п╫п╟я┤п╣п╫п╦п╣ coredump_filter я─п╬п╢п╦я┌п╣п╩я▐; п╥п╫п╟я┤п╣п╫п╦п╣ coredump_filter я│п╬я┘я─п╟п╫я▐п╣я┌я│я▐ п╦ п©я─п╦ execve(2).

п÷п╬п╩п╣п╥п╫п╬ я┐п╨п╟п╥я▀п╡п╟я┌я▄ п╥п╫п╟я┤п╣п╫п╦п╣ coredump_filter п╡ я─п╬п╢п╦я┌п╣п╩я▄я│п╨п╬п╧ п╬п╠п╬п╩п╬я┤п╨п╣ п╢п╬ п╥п╟п©я┐я│п╨п╟ п©я─п╬пЁя─п╟п╪п╪я▀, п╫п╟п©я─п╦п╪п╣я─:


$ echo 0x7 > /proc/self/coredump_filter
$ ./п╨п╟п╨п╟я▐-я┌п╬_п©я─п╬пЁя─п╟п╪п╪п╟

п╜я┌п╬я┌ я└п╟п╧п╩ п╣я│я┌я▄ п╡ я│п╦я│я┌п╣п╪п╣, я┌п╬п╩я▄п╨п╬ п╣я│п╩п╦ я▐п╢я─п╬ п╠я▀п╩п╬ я│п╬п╠я─п╟п╫п╬ я│ п©п╟я─п╟п╪п╣я┌я─п╬п╪ п╫п╟я│я┌я─п╬п╧п╨п╦ CONFIG_ELF_CORE.

п≈п░п°п∙п╖п░п²п≤п╞

п п╬п╪п╟п╫п╢я┐ gdb(1) gcore п╪п╬п╤п╫п╬ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п╢п╩я▐ п©п╬п╩я┐я┤п╣п╫п╦я▐ п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦ я─п╟п╠п╬я┌п╟я▌я┴п╣пЁп╬ п©я─п╬я├п╣я│я│п╟.

п∙я│п╩п╦ п╢п╩я▐ п╪п╫п╬пЁп╬п╫п╦я┌п╣п╡п╬пЁп╬ п©я─п╬я├п╣я│я│п╟ (п╦п╩п╦, я┌п╬я┤п╫п╣п╣, п©я─п╬я├п╣я│я│п╟, п╨п╬я┌п╬я─я▀п╧ п╢п╣п╩п╦я┌ я│п╡п╬я▌ п©п╟п╪я▐я┌п╦ я│ п╢я─я┐пЁп╦п╪ п©я─п╬я├п╣я│я│п╬п╪, я│п╬п╥п╢п╟п╫п╫я▀п╪ я│ я└п╩п╟пЁп╬п╪ CLONE_VM я┤п╣я─п╣п╥ clone(2)) п╡я▀п©п╬п╩п╫я▐п╣я┌я│я▐ п╢п╟п╪п© п©п╟п╪я▐я┌п╦, я┌п╬ ID п©я─п╬я├п╣я│я│п╟ п╡я│п╣пЁп╢п╟ п╢п╬п╠п╟п╡п╩я▐п╣я┌я│я▐ п╨ п╦п╪п╣п╫п╦ я└п╟п╧п╩п╟ п╢п╟п╪п©п╟, п╣я│п╩п╦ ID п©я─п╬я├п╣я│я│п╟ я┐п╤п╣ п╫п╣ п╡п╨п╩я▌я┤я▒п╫ п╡ я█я┌п╬ п╦п╪я▐ я│ п©п╬п╪п╬я┴я▄я▌ %p п╡ /proc/sys/kernel/core_pattern. (п╜я┌п╬, пЁп╩п╟п╡п╫я▀п╪ п╬п╠я─п╟п╥п╬п╪, п©п╬п╩п╣п╥п╫п╬ п╨п╬пЁп╢п╟ п©я─п╦п╪п╣п╫я▐п╣я┌я│я▐ я─п╣п╟п╩п╦п╥п╟я├п╦я▐ LinuxThreads, пЁп╢п╣ п╨п╟п╤п╢п╟я▐ п╫п╦я┌я▄ п©я─п╬я├п╣я│я│п╟ п╦п╪п╣п╣я┌ я│п╡п╬п╧ PID.)

п÷п═п≤п°п∙п═

п╜я┌п╟ п©я─п╬пЁя─п╟п╪п╪п╟ п╪п╬п╤п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐ п╢п╩я▐ п╢п╣п╪п╬п╫я│я┌я─п╟я├п╦п╦ я│п╦п╫я┌п╟п╨я│п╦я│п╟ п╨п╟п╫п╟п╩п╟ п╡ я└п╟п╧п╩п╣ /proc/sys/kernel/core_pattern. п║п╩п╣п╢я┐я▌я┴п╦п╧ я│п╣п╟п╫я│ п╬п╠п╬п╩п╬я┤п╨п╦ п╢п╣п╪п╬п╫я│я┌я─п╦я─я┐п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣ п╢п╟п╫п╫п╬п╧ п©я─п╬пЁя─п╟п╪п╪я▀ (п©я─п╦ п╨п╬п╪п©п╦п╩я▐я├п╦п╦ п╠я▀п╩ я│п╬п╥п╢п╟п╫ п╦я│п©п╬п╩п╫я▐п╣п╪я▀п╧ я└п╟п╧п╩ я│ п╦п╪п╣п╫п╣п╪ core_pattern_pipe_test):


$ cc -o core_pattern_pipe_test core_pattern_pipe_test.c
$ su
Password:
# echo '|$PWD/core_pattern_pipe_test %p UID=%u GID=%g sig=%s' > \
/proc/sys/kernel/core_pattern
# exit
$ sleep 100
^\                     # type control-backslash
Quit (core dumped)
$ cat core.info
argc=5
argc[0]=</home/mtk/core_pattern_pipe_test>
argc[1]=<20575>
argc[2]=<UID=1000>
argc[3]=<GID=100>
argc[4]=<sig=3>
Total bytes in core dump: 282624

п≤я│я┘п╬п╢п╫я▀п╧ п╨п╬п╢ п©я─п╬пЁя─п╟п╪п╪я▀

/* core_pattern_pipe_test.c */
#define _GNU_SOURCE
#include <sys/stat.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define BUF_SIZE 1024
int
main(int argc, char *argv[])
{

int tot, j;
ssize_t nread;
char buf[BUF_SIZE];
FILE *fp;
char cwd[PATH_MAX];
/* п≤п╥п╪п╣п╫я▐п╣п╪ п╫п╟я┬ я┌п╣п╨я┐я┴п╦п╧ я─п╟п╠п╬я┤п╦п╧ п╨п╟я┌п╟п╩п╬пЁ п╫п╟ я┌п╬я┌, я┤я┌п╬ я┐
я┐п©п╟п╡я┬п╣пЁп╬ п©я─п╬я├п╣я│я│п╟ */
snprintf(cwd, PATH_MAX, "/proc/%s/cwd", argv[1]);
chdir(cwd);
/* п≈п╟п©п╦я│я▀п╡п╟п╣п╪ п╡я▀п╡п╬п╢ п╡ я└п╟п╧п╩ "core.info" п╡ я█я┌п╬п╪ п╨п╟я┌п╟п╩п╬пЁп╣ */
fp = fopen("core.info", "w+");
if (fp == NULL)
exit(EXIT_FAILURE);
/* п÷п╬п╨п╟п╥я▀п╡п╟п╣п╪ п╟я─пЁя┐п╪п╣п╫я┌я▀ п╨п╬п╪п╟п╫п╢п╫п╬п╧ я│я┌я─п╬п╨п╦, п©п╣я─п╣п╢п╟п╫п╫я▀п╣ п©я─п╬пЁя─п╟п╪п╪п╣
core_pattern */
fprintf(fp, "argc=%d\n", argc);
for (j = 0; j < argc; j++)
fprintf(fp, "argc[%d]=<%s>\n", j, argv[j]);
/* п÷п╬п╢я│я┤п╦я┌я▀п╡п╟п╣п╪ п╠п╟п╧я┌я▀ я│я┌п╟п╫п╢п╟я─я┌п╫п╬пЁп╬ п╡п╡п╬п╢п╟ (п╢п╟п╪п©п╟ п©п╟п╪я▐я┌п╦) */
tot = 0;
while ((nread = read(STDIN_FILENO, buf, BUF_SIZE)) > 0)
tot += nread;
fprintf(fp, "Total bytes in core dump: %d\n", tot);
exit(EXIT_SUCCESS); }

п║п°п·п╒п═п≤п╒п∙ п╒п░п п√п∙

bash(1), gdb(1), getrlimit(2), mmap(2), prctl(2), sigaction(2), elf(5), proc(5), pthreads(7), signal(7)

2010-02-25 Linux