Я думаю, что Керниган пытался сделать вывод о внимательном анализе. Не ныряйте среди деревьев, не понимая леса. Тем не менее, есть другие причины предпочитать другие инструменты, чем отладчик, так как помогает на ваш взгляд.
Мой любимый (если это правильное слово) пример - ошибки памяти. В таких языках, как C или C ++, неправильное использование системы памяти (двойное удаление, доступ к объектам через мертвые указатели, запуск из конца массива) может повредить программу таким образом, что проблема нигде не проявляется около первоначальная причина.
Надлежащий подход на этих языках заключается в использовании методов, которые устраняют эти ошибки, но в случае неудачи инструменты также являются ценными. Когда мой опыт с подобными ошибками заставляет меня заподозрить «это похоже на ошибку памяти», я достигаю valgrind , до Я когда-либо думал «отладчик».
Теперь мы можем начать аргумент, что автоматические инструменты памяти и библиотеки проверки границ являются отладчиками! ; ^) ~