高级调试技术与C语言数据类型和控制结构详解
1. 高级调试技术
在调试代码时,我们有多种工具和方法可供选择,其中常见的有调试打印(debug printing)和GDB调试器。
1.1 调试打印与GDB的对比
调试时,我主要采用“科学方法”,即先提出可能的原因,然后排除或证明这些原因是否导致了缺陷。然而,许多程序员认为这种方法会减慢他们的调试速度,他们会惊慌失措地急于解决问题,但往往只是盲目尝试,无法收集到有用的信息。
我更倾向于使用调试打印作为主要的调试工具,原因如下:
- 执行跟踪 :通过调试打印变量,我们可以看到程序执行的完整跟踪信息,从而追踪问题所在。而使用GDB时,需要在各处设置观察和调试语句,很难获得程序执行的完整跟踪。
- 代码留存 :调试打印语句可以留在代码中,需要时重新编译即可。而使用GDB时,对于每个要查找的缺陷,都需要单独配置信息。
- 服务器调试 :在服务器出现问题时,开启调试日志并在运行时检查日志更容易。系统管理员通常熟悉日志处理,但不一定会使用GDB。
- 操作简便 :打印信息更简单,调试器的界面往往晦涩难懂且不一致。例如, debug("Yo, dis right? %d", my_stuff); 这样的调试打印语句非常简单。
- 科学分析 :编写调试打印语句时,我们被迫对代码进行实际分析,并使用科学方法。可以将调试打印的使用看作是“我假设代码在这里出错”,运行
超级会员免费看
订阅专栏 解锁全文
1978

被折叠的 条评论
为什么被折叠?



