Колись я використовував дуже багато коду налагодження. Я майже цілком орієнтувався на Windows, тому було багато цієї функції виводу рядка налагодження, що я більше не пам'ятаю, як писати написання, тому я міг фіксувати слід за допомогою певної програми.
Деякий код налагодження залишився на місці, конкретні речі, які мали надати вкладення дзвінків. Однак, хоча те, що налагодження рядка в основному не було б видно у виробничій системі, все-таки все робилося за умови умовної компіляції.
Однак реальність полягає в тому, що весь цей налагоджувальний код доклав чимало зусиль для того, що ідеально обробляється по-іншому - використовуючи, звичайно, відладчик. На той момент я не був вражений налагоджувачем Borland C ++. Інструменти були там, але вони занадто часто давали оманливі результати, а використання налагоджувача без IDE (часто необхідного) означало запам'ятовування клавіш швидкого доступу, що означало відволікання від роботи.
Єдиний досвід налагодження, який я виявив, що є гіршим, це командний рядок GDB.
Бути експертом з інструментами, якими ви користуєтесь щодня, звичайно, важливо - але налагодження дійсно не повинно бути тим, що ви робите щодня. Якщо ви часто користуєтеся налагоджувачем, ви все гаразд, вивчаючи десятки команд та / або комбінацій клавіш, це здається мені трохи червоним прапором.
На той час, коли я працював у Visual Studio 7, проте, було зрозуміло, що налагодження може бути дуже практичним та ефективним. Якщо ви можете виконати налагодження у Visual Studio (включені експрес-видання), налагодження - це вітер. Без сумніву, якщо ви можете знайти правильний інтерфейс GUI / IDE, GDB також простий та ефективний, хоча я ще не робив цього пошуку.
Також є що сказати для тестування одиниць, з аналізом покриття за допомогою gcov. Чим впевненіше ви в поведінці своїх бібліотек, тим менш глибокою має бути налагодження - і тим рідше вам потрібен налагоджувач в першу чергу. І писати одиничні тести - це цілком розумно те, що ви повинні робити більшість днів.
Несподівано важливий інструмент = cmake, інструмент побудови, який дозволяє мені легко перемикатися між побудовою для GCC та VC ++, серед іншого. Тож я можу зробити тестування одиниць і покриття на основі gcov за допомогою GCC, але легко перейти на VC ++ для використання налагоджувача.