Пропоную вам переклад статті одного з інженерів Google, який спеціалізується на автоматизації тестування програмного забезпечення.

Я гадаю, що вади можна поділити на три основні категорії.

* Логічні. Логічні вади є основними, і найчастішими. Це ваші if'и, цикли та інша логіка в коді. Вони на сьогоднішній день є найбільш поширеним видом помилок у програмному забезпеченні. (Думка: це є неправильно).

* Вади взаємодії. Вади взаємодії — це коли два різних об'єкти не правильно взаємодіють один з одним. Наприклад, вивід імені у полі «прізвище». Також яскравим прикладом є ситуація,...

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

Містить наступні модулі:

• memcheck: основний модуль, застосовується для пошуку витоків пам'яті та інших помилок пов'язаних з неправильною роботою з областями пам'яті — читанням і записом за межі виділених областей і т.д.

• cachegrind: аналізує виконання коду, збираючи дані про (не)потрапляннях до кешу і точках переходу (коли процесор не правильно передбачує розгалуження).

• callgrind: аналізує виклики функцій, використовуючи приблизно ту ж...

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

cachegrind

Модуль cachegrind проводить збір статистики по потраплянню до кешу процесора першого та другого рівнів при виконанні операцій читання і запису даних та інструкцій програм, а також статистику по роботі модуля передбачення галуження у програмах. За замовчуванням, збір...

© 2009 - 2018, Розробка - соціальна ІТ спільнота.
Контакти: info@rozrobka.com
Правила користування