เบเบฒเบ™เบ›เปˆเบญเบ Valgrind 3.15.0, เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบˆเปเบฒ

เบกเบตเปƒเบซเป‰ เบ›เปˆเบญเบเบ•เบปเบง Valgrind 3.15.0, เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเปŠเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบฅเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒ. Valgrind เบฎเบญเบ‡เบฎเบฑเบš Linux (X86, AMD64, ARM32, ARM64, PPC32, PPC64BE, PPC64LE, S390X, MIPS32, MIPS64), Android (ARM, ARM64, MIPS32, X86), Solaris (X86, AMD64) เปเบฅเบฐ macOS (AMD64) .

ะ’ เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ:

  • เบซเบผเบฒเบ เป€เบฎเบฑเบ”เปƒเปเปˆ เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ heap DHAT (Dynamic Heap Analysis Tool) เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบ, เบญเบฐเบ™เบธเบเบฒเบ” เบ•เบดเบ”เบ•เบฒเบกเบ—เบธเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบ™ heap เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบฅเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เบเบดเบ”เบˆเบฐเบเปเบฒ heap เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›, เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰, เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เป„เบฅเบเบฐเบชเบฑเป‰เบ™, เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™ heap. เบˆเบฒเบเบ›เบฐเป€เบžเบ”เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบปเบ”เบฅเบญเบ‡, DHAT เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท Valgrind เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ (เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบ "-tool=dhat" เปเบ—เบ™ "--tool=exp-dhat").

    เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เปƒเบŠเป‰เปเบšเบšเบเบฒเบŸเบดเบเบเบฑเบš DHAT. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบชเปเบฒเป€เบฅเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก, DHAT เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเบฐเปเบ”เบ‡เบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบซเบผเบธเบšเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”, เปเบฅเบฐเบ‚เบฝเบ™เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™ profileing เบเบฑเบšเป„เบŸเบฅเปŒ. เบ‚เปเป‰เบกเบนเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบเบธเปˆเบกเป€เบ›เบฑเบ™เบšเบฑเบ™เบ—เบถเบ, เปเบ•เปˆเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เป€เบ›เบฑเบ™ stack trace tree เปเบ—เบ™. เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเปเบฅเบฐเบ›เบฐเป€เบžเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก. เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰, เบœเบนเป‰เบŠเบปเบกเบžเบดเป€เบชเบ” dh_view.html เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบต, เป€เบ›เบตเบ”เบ•เบปเบงเปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš;

    เบเบฒเบ™เบ›เปˆเบญเบ Valgrind 3.15.0, เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบˆเปเบฒ

  • เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš amd64 (x86_64), เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบšเบšเบ‚เบฐเบซเบเบฒเบ RDRAND เปเบฅเบฐ F16C;
  • Cachegrind เปเบฅเบฐ Callgrind เบชเบฐเป€เปœเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเปเปˆ โ€œโ€”show-percsโ€, เป€เบŠเบดเปˆเบ‡เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ‚เบญเบ‡เบ„เปˆเบฒเบ™เบฑเบšเป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™;
  • เปƒเบ™ Massif เบชเปเบฒเบฅเบฑเบš Linux, Android เปเบฅเบฐ Solari เป‚เบซเบกเบ” "--read-inline-info" เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš macOS เบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™ "--read-inline-info=yes" เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™;
  • เปƒเบ™ Memcheck, เป€เบกเบทเปˆเบญเบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบ โ€œ--xtree-leak=yesโ€ (เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบฎเบปเปˆเบงเป„เบซเบผเปƒเบ™เบฎเบนเบšเปเบšเบš xtree), เบ—เบฒเบ‡เป€เบฅเบทเบญเบ โ€œ--show-leak-kinds=allโ€ เบ”เบฝเบงเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบ›เบธเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡;
  • เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบžเบตเปˆเบก "--show-error-list=no|yes", เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ "-s" เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš "--show-error-list=yes" เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบเบงเบ”เบžเบปเบšเบซเบผเบฑเบ‡เบˆเบฒเบเบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบฅเบฒเบเบฅเบฐเบญเบฝเบ” "-v -v", เปเบ•เปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เป‚เบซเบกเบ”เบ™เบตเป‰เบ–เบทเบ cluttered เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™