调试代码常用方法

调试代码的学习,需要了解它的构成,有静态代码、打印、日志、第三方日志、调试器和专用工具,然后利用合适的工具和方法去实践。

打印调试法与日志

最有效的 debug 工具就是细致的分析,配合恰当位置的打印语句。 — Brian Kernighan, Unix 新手入门

make 构建工具介绍

构建工具通常需要定义依赖目标规则

make 是最常用的构建系统之一,您会发现它通常被安装到了几乎所有基于 UNIX 的系统中。make并不完美,但是对于中小型项目来说,它已经足够好了。当您执行 make 时,它会去参考当前目录下名为 Makefile 的文件。所有构建目标、相关依赖和规则都需要在该文件中定义,它看上去是这样的:

命令行环境使用指南

无界面情况下的唯一选择

命令行环境的学习主要包括

  • 任务控制:Shell 操作和进程的关系->需要了解进程信号
  • 终端多路复用:如何在终端完成多面板、多窗口的任务->需要会使用相关工具
  • dotfiles 管理->需要管理起来dotfiles
  • ssh 应用:命令行工具和 ssh 工具的使用->需要掌握一套高效的操作远端设备的流程

任务控制

Shell 会使用 UNIX 提供的信号机制执行进程间通信。当一个进程接收到信号时,它会停止执行、处理该信号并基于信号传递的信息来改变其执行。就这一点而言,信号是一种软件中断

常用性能分析工具

学习性能分析,最开始是查看执行时间,然后用工具帮助排查问题,用资源监控辅助。

即使您的代码能够像您期望的一样运行,但是如果它消耗了您全部的 CPU 和内存,那么它显然也不是个好程序。算法课上我们通常会介绍大 O 标记法,但却没教给我们如何找到程序中的热点。 鉴于 过早的优化是万恶之源,您需要学习性能分析和监控工具,它们会帮助您找到程序中最耗时、最耗资源的部分,这样您就可以有针对性的进行性能优化。

Shell 工具和脚本入门

计算机的文字接口 Shell 处理 GUI 接口无法应对的剩下 20% 使用场景。

Shell 工具和脚本的学习,其实是三块内容,Shell 语言编程、Shell 场景&工具,以及脚本编写。