Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 241

Автор Роббинс ΠΡ€Π½ΠΎΠ»ΡŒΠ΄

none (nil) -- no functionality (0)

log-stats (lst) -- log general statistics (0x1)

log-non-free (lnf) -- log non-freed pointers (0x2)

log-known (lkn) -- log only known non-freed (0x4)

log-trans (ltr) -- log memory transactions (0x8)

log-admin (lad) -- log administrative info (0x20)

log-blocks (lbl) -- log blocks when heap-map (0x40)

log-bad-space (lbs) -- dump space from bad pnt (0x100)

log-nonfree-space (lns) -- dump space from non-freed pointers (0x200)

log-elapsed-time (let) -- log elapsed-time for allocated pointer (0x40000)

log-current-time (let) -- log current-time for allocated pointer (0x80000)

check-fence (cfe) -- check fence-post errors (0x400)

check-heap (che) -- check heap adm structs (0x800)

check-lists (cli) -- check free lists (0x1000)

check-blank (cbl) -- check mem overwritten by alloc-blank, free-blank (0x2000)

check-funcs (cfu) -- check functions (0x4000)

force-linear (fli) -- force heap space to be linear (0x10000)

catch-signals (csi) -- shutdown program on SIGHUP, SIGINT, SIGTERM (0x20000)

realloc-copy (rco) -- copy all re-allocations (0x100000)

free-blank (fbl) -- overwrite freed memory space with BLANK_CHAR (0x200000)

error-abort (eab) -- abort immediately on error (0x400000)

alloc-blank (abl) -- overwrite newly alloced memory with BLANK_CHAR (0x800000)

heap-check-map (hem) -- log heap-map on heap-check (0x1000000)

print-messages (pme) -- write messages to stderr (0x2000000)

catch-null (cnu) -- abort if no memory available (0x4000000)

never-reuse (nre) -- never re-use freed memory (0x8000000)

allow-free-null (afn) -- allow the frees of NULL pointers (0x20000000)

error-dump (edu) -- dump core on error and then continue (0x40000000)

К этому Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

dmalloc
, ΠΈ Π΅Π³ΠΎ гибкости,
dmalloc
являСтся ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ для нашСй простой дСмонстрационной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ ΠΎΠ½ Π½Π΅ΠΎΡ†Π΅Π½ΠΈΠΌ для Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠ³ΠΎ, Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния.

15.5.2.4. Valgrind: многосторонний инструмСнт

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, описанныС Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, всС Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ динамичСской памяти, ΠΈ это Π² самом Π΄Π΅Π»Π΅ являСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Однако, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ динамичСской памяти Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ СдинствСнной Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Valgrind ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPL ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ большоС Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ происходят ΠΎΡ‚ динамичСской памяти.

Руководство ΠΏΠΎ Valgrind описываСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΡ‹, поэтому ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ†ΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΈ ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ) Π΅Π³ΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ продвиТСния Π²ΠΏΠ΅Ρ€Π΅Π΄.

Valgrind являСтся Π³ΠΈΠ±ΠΊΠΈΠΌ инструмСнтом для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ профилирования исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Linux-x86. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ состоит ΠΈΠ· ядра, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ обСспСчиваСт искусствСнный процСссор x86, ΠΈ ряда Β«ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊΒ», каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ инструмСнтом. АрхитСктура ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Β«ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈΒ», Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ структуру.

НаиболСС ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Β«ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉΒ» являСтся

memcheck
.

Β«ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Β»

memcheck
ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ всС чтСния ΠΈ записи памяти, Π° Π²Ρ‹Π·ΠΎΠ²Ρ‹
malloc/new/free/delete
ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅
memcheck
ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

β€’Β Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ памяти.

β€’Β Π§Ρ‚Π΅Π½ΠΈΠ΅/запись Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ послС Π΅Π΅ освобоТдСния.

β€’Β Π§Ρ‚Π΅Π½ΠΈΠ΅/запись Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ

malloc
Π±Π»ΠΎΠΊΠ°.

β€’Β Π§Ρ‚Π΅Π½ΠΈΠ΅/запись Π² Π½Π΅Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ области стСка.

β€’Β Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти, ΠΊΠΎΠ³Π΄Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅

malloc
Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ навсСгда.

β€’Β ΠΠ΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ использованиС

malloc/new/new[]
ΠΏΡ€ΠΎΡ‚ΠΈΠ²
free/delete/delete[]
.

‒ НСкоторыС Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ употрСблСния

pthreads
API POSIX.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ этим, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ срСдствами, часто ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π½Π΅ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π΅Π΄ΠΊΠΈΠ΅, Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Π΅ для обнаруТСния ΠΎΡ‚ΠΊΠ°Π·Ρ‹.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Β«ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈΒ» Π±ΠΎΠ»Π΅Π΅ спСциализированы:

β€’Β 

cachegrind
осущСствляСт ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΡŽ кэшСй I1, D1 ΠΈ L2 процСссора, поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ источники осСчСк кэшСй Π² вашСм ΠΊΠΎΠ΄Π΅.

β€’Β 

addrcheck
ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π°
memcheck
Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈΒ β€” ΠΎΠ½Π° Π½Π΅ провСряСт Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ β€” Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, точная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° адрСсов β€” ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ проводится. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ стороной этого являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ошибки Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ
memcheck
.

Но ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ сторона Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Π΄Π²Π° Ρ€Π°Π·Π° быстрСС, Ρ‡Π΅ΠΌ с

memcheck
, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшС памяти. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ чтСния/записи освобоТдСнной памяти, памяти Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… мСстах, ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π΄ΠΎ выпуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² свСт!

β€’Β 

helgrind
являСтся ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для обнаруТСния состязания Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

НаконСц, руководство ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚:

Valgrind тСсно связан с особСнностями процСссора, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ, Π² мСньшСй стСпСни, компилятора ΠΈ основных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π‘. Π­Ρ‚ΠΎ затрудняСт Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ, поэтому ΠΌΡ‹ с самого Π½Π°Ρ‡Π°Π»Π° ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ считаСм ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉΡΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ: Linux Π½Π° x86. Valgrind ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стандартный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Unix '

./configure
', '
make
', '
make install
', ΠΈ ΠΌΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… с ядром 2.2 ΠΈΠ»ΠΈ 2.4 ΠΈ glibc 2.1.X, 2.2.X ΠΈΠ»ΠΈ 2.3.1. Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных установок Linux. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ glibc-2.3.2+ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ NPTL (Native POSIX Thread Library β€” собствСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² POSIX) Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠœΡ‹ надССмся ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это, Π½ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π»Π΅Π³ΠΊΠΎ.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ GNU/Linux Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΡƒΡŽ систСму Unix, Valgrind Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ большой ΠΏΠΎΠΌΠΎΡ‰ΠΈ. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ систСмы GNU/Linux Π½Π° x86 довольно ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ (ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ доступны), Π²ΠΏΠΎΠ»Π½Π΅ вСроятно, Ρ‡Ρ‚ΠΎ Π²Ρ‹ смоТСтС приобрСсти Π΅Π΅ с ΡƒΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ, ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π·Π°Π½ΡΡ‚ΡŒ Π½Π° врСмя! Π§Ρ‚ΠΎ Π΅Ρ‰Π΅, ΠΊΠΎΠ³Π΄Π° Valgrind нашСл для вас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΎΠ½Π° исправляСтся для любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ компилируСтся ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСму x86 GNU/Linux для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΡƒΡŽ систСму Unix для развСртывания высококачСствСнного ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. [181]