Valgrind 3.6.0

Вийшла нова версія популярного знадобу для зневадження та профілювання програмного забезпечення.

Ось деякі з нових функцій
  • Підтримка ARM/Linux.
  • Підтримка останніх версій дистрибутивів Linux: Ubuntu 10.10 та Fedora 14.
  • Підтримка Mac OS X 10.6, both 32- and 64-bit executables.
  • Підтримка набору інструкцій SSE4.2.
  • Покращення профілювальника Callgrind.
  • Новий експериментальний профілювальник «куч», DHAT.
  • Величезна кількість виправлених помилок та дрібних вдосконалень.

Даталі | Веб-сайт проекту
  • +4
  • 22 жовтня 2010, 12:21
  • sashko
  • 7

Valgrind. Профілювання програмного забезпечення

Профілювання програм може здійснюватися за допомогою двох модулів — callgrind та cachegrind. Кожен з них збирає різну інформацію. При цьому не можна покладатися на результати роботи лише одного з модулів, краще проводити пошук «вузьких» місць у програмах на основі аналізу виводу кожного з модулів.


( Читати далі )
  • +3
  • 14 серпня 2009, 14:43
  • sashko
  • 2

Вступ до використання Valgrind. Пошук витоків пам'яті

Valgrind — потужний набір знадобів для зневадження роботи з оперативною пам'яттю, пошуку витоків пам'яті та профілювання.

Містить наступні модулі:
• memcheck: основний модуль, застосовується для пошуку витоків пам'яті та інших помилок пов'язаних з неправильною роботою з областями пам'яті — читанням і записом за межі виділених областей і т.д.
• cachegrind: аналізує виконання коду, збираючи дані про (не)потрапляннях до кешу і точках переходу (коли процесор не правильно передбачує розгалуження).
• callgrind: аналізує виклики функцій, використовуючи приблизно ту ж методику, що й модуль cachegrind. Дозволяє побудувати дерево викликів функцій, і відповідно, проаналізувати вузькі місця у роботі програми.
• massif: аналізує виділення пам'яті різними частинами програми
• helgrind: аналізує виконавчий код на наявність різноманітних помилок синхронізації при використанні багатопотокового коду, використовуючи POSIX Threads.

Найчастіши використовується для пошуку витоків пам'яті. Для цього призначений модуль memcheck, який уміє шукати:
• touching memory you shouldn’t (eg. overrunning heap block boundaries);
• використання змінних до їхньої ініціалізації;
• некоректне звільнення пам'яті;
• витоки пам'яті.



( Читати далі )
  • +2
  • 13 серпня 2009, 18:34
  • sashko
  • 19