作者 Alex Dixon 在文章中探讨了程序调试中使用调试器和 printf 调试的争议。
他指出,一些开发者认为如果需要使用调试器,就说明对代码理解不够,而另一些开发者则认为不会使用调试器是能力不足的表现。作者认为,这两种观点都过于极端,调试代码是开发过程中的必需步骤,开发者应根据实际情况选择合适的工具。
作者本人经常使用调试器来调试 C++ 代码,并认为大学教育中对调试技巧的重视程度不够。他举例说明,使用硬件断点或监视点能快速发现错误,极大地提升了调试效率。然而,他也承认在一些情况下,比如调试发布版本代码或追踪移动设备触摸事件时,printf 调试更为实用和高效。
此外,作者还介绍了一些其他的调试工具,例如地址清理器和未定义行为清理器,并建议开发者灵活运用这些工具来提高调试效率。他认为,尽管一些开发者认为调试器会降低效率,但实际上,使用合适的工具可以大幅缩短调试时间。
最后,作者总结道,调试的目的在于解决问题,开发者应该根据自己的需要,选择合适的调试方法,而不必拘泥于特定的工具或方式。他还在文章最后分享了一个小技巧,即通过插入一个临时变量来实现条件断点,并提醒开发者在提交代码前删除这些临时代码。