ื ื•ื™ืกืฉื™ื˜ ืคืึทืจืจื™ื›ื˜ืŸ ืจื™ื–ืึทืœื˜ื™ื“ ืื™ืŸ ืึท ื“ืขืจืขื ื“ื™ืงื˜ ืคืึทืจืจื™ื›ื˜ืŸ ืคึฟืึทืจ ืึท ืกืคึผืขืงื˜ืขืจ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ

ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคื•ืŸ ื“ื™ ื’ืจืกืขืงื•ืจื™ื˜ื™ ืคึผืจื•ื™ืขืงื˜ ืฉืขืจื“ ืึท ื•ื•ืึธืจืขื ืขืŸ ื“ืขืจืฆื™ื™ืœื•ื ื’ ื•ื•ืึธืก ื“ืขืžืึทื ืกื˜ืจื™ื™ืฅ ื•ื•ื™ ืคืึทืจื˜ืจืึทื›ื˜ ื™ืœื™ืžืึทื ื™ื™ืฉืึทืŸ ืคื•ืŸ ืงืึทืžืคึผื™ื™ืœืขืจ ื•ื•ืึธืจื ื™ื ื’ื– ืงืขื ืขืŸ ืคื™ืจืŸ ืฆื• ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื™ืŸ ื“ื™ ืงืึธื“. ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ืžื™ื™ึท, ืึท ืคืึทืจืจื™ื›ื˜ืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ืคืืจื’ืขืœื™ื™ื’ื˜ ืคึฟืึทืจ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ืคึฟืึทืจ ืึท ื ื™ื™ึท ื•ื•ืขืงื˜ืึธืจ ืคื•ืŸ ืขืงืกืคึผืœื•ื™ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืกืคึผืขืงื˜ืขืจ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ื“ื•ืจืš ื“ื™ ืคึผื˜ืจืึทืกืข ืกื™ืกื˜ืขื ืจื•ืคืŸ.

ื‘ืฉืขืช ื˜ืขืกื˜ื™ื ื’ ื“ื™ ืœืึทื˜ืข, ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื‘ืืžืขืจืงื˜ ืึทื– ื•ื•ืขืŸ ื‘ื ื™ืŸ, ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ื“ื™ืกืคึผืœื™ื™ื– ืึท ื•ื•ืืจืขื ื•ื ื’ ื•ื•ืขื’ืŸ ืžื™ืงืกื™ื ื’ ืงืึธื“ ืื•ืŸ ื–ื•ืš (ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ืคื™ื™ื ื“ ื ืึธืš ื“ื™ ืงืึธื“, ืึทืกื™ื™ื ื™ื ื’ ืึท ื•ื•ืขืจื˜ ืฆื• ืึท ื™ื’ื–ื™ืกื˜ื™ื ื’ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง):

ื™ื ื˜ ืื™ื ื“ืขืงืก = n;
ืื•ื™ื‘ (n <ื”ื‘ืคึผ_NUM) {ืื™ื ื“ืขืงืก = array_index_nospec (ืื™ื ื“ืขืงืก, ื”ื‘ืคึผ_NUM); struct perf_event *bp = ืคืึธื“ืขื->ptrace_bps[ืื™ื ื“ืขืงืก];

ืœื™ื ื•ืก ื”ืื˜ ืื ื’ืขื ื•ืžืขืŸ ืงืขืจืขืงืฉืึทืŸ ืฆื• ื“ื™ื™ืŸ ื‘ืขืœ ืฆื•ื•ื™ื™ึทื’, ื•ื•ื™ื™ืœ ื’ืึทื˜ ื‘ืึทืคืจื™ื™ึทืขืŸ ืคื•ืŸ ืคื•ืŸ ื“ื™ ื•ื•ืืจืขื ื•ื ื’ ื“ื•ืจืš ืžืึธื•ื•ื™ื ื’ ื“ื™ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ื“ืขืคึฟื™ื ื™ืฆื™ืข ืฆื• ืึท ืื•ื™ื‘ ื‘ืœืึธืง:

ืื•ื™ื‘ (n <ื”ื‘ืคึผ_NUM) {ื™ื ื˜ ืื™ื ื“ืขืงืก = array_index_nospec(n, ื”ื‘ืคึผ_NUM); struct perf_event *bp = ืคืึธื“ืขื->ptrace_bps[ืื™ื ื“ืขืงืก];

ืื™ืŸ ื™ื•ืœื™, ื“ื™ ืคืึทืจืจื™ื›ื˜ืŸ ืื™ื– ืื•ื™ืš ื˜ืจืึทื ืกืคึผืึธืจื˜ืึทื“ ืฆื• ื“ื™ ืกื˜ืึทื‘ื™ืœ ืงืขืจืŸ ืฆื•ื•ื™ื™ื’ืŸ 4.4, 4.9, 4.14, 4.19 ืื•ืŸ 5.2. ื“ื™ ืžื—ื–ืงื•ืช ืคื•ืŸ ื“ื™ ืกื˜ืึทื‘ื™ืœืข ืฆื•ื•ื™ื™ื’ืŸ ื”ืึธื‘ืŸ ืื•ื™ืš ื’ืขื˜ืจืึธืคืŸ ื“ื™ ื•ื•ืืจืขื ื•ื ื’ ืื•ืŸ ืื ืฉื˜ืื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืฆื™ ืขืก ืื™ื– ืฉื•ื™ืŸ ืคืึทืจืคืขืกื˜ื™ืงื˜ ื’ืขื•ื•ืึธืจืŸ ืื™ืŸ ืœื™ื ื•ืกโ€™ืก ื‘ืขืœ ืฆื•ื•ื™ื™ึทื’, ื”ืึธื‘ืŸ ื–ื™ื™ ืึทืœื™ื™ืŸ ื’ืขืžืึทื›ื˜ ืึท ืคืึทืจืจื™ื›ื˜ืŸ. ื“ื™ ืคึผืจืึธื‘ืœืขื ืื™ื– ืึทื– ืึธืŸ ื˜ืึทืงืข ื˜ืจืื›ื˜ืŸ ื•ื•ืขื’ืŸ ืื™ื, ื–ื™ื™ ื ืึธืจ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ื“ื™ืคื™ื™ื ื™ื ื’ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืึทืจื•ื™ืฃ, ืึทื–ื•ื™ ืึทื– ื“ืขืจ ืจื•ืฃ ืฆื• array_index_nospec, ื•ื•ืึธืก ื’ืœื™ื™ืš ื’ื™ื˜ ืฉื•ืฅ ืงืขื’ืŸ ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™, ืื™ื– ื ื™ื˜ ืžืขืจ ื’ืขื ื™ืฆื˜ ื•ื•ืขืŸ ื“ื™ืคื™ื™ื ื™ื ื’ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ, ืื•ืŸ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื“ื™ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง "ืื™ื ื“ืขืงืก" ื“ื™ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง "n" ืื™ื– ืฉื˜ืขื ื“ื™ืง ื’ืขื ื™ืฆื˜:

ื™ื ื˜ ืื™ื ื“ืขืงืก = n;
ืื•ื™ื‘ (n <HBP_NUM) {ืกื˜ืจื•ืงื˜ ืคึผืขืจืค_ืขื•ื•ืขื ื˜ *ื‘ืคึผ = ืคืึธื“ืขื->ืคึผื˜ืจืึทืกืข_ื‘ืคึผืก[ืื™ื ื“ืขืงืก];
ืื™ื ื“ืขืงืก = array_index_nospec (ืื™ื ื“ืขืงืก, ื”ื‘ืคึผ_NUM);

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’