Linux程序设计笔记(第10章 调试)
来源:互联网 发布:c语言双引号作用 编辑:程序博客网 时间:2024/05/21 07:04
* 错误类型
一般来说,每100行代码会有两个左右的错误。错误类型可划分如下:
- 功能定义错误
- 设计规划错误
- 代码编写错误
空运行(dry running):在纸上执行程序的核心代码的过程。
* 程序调试阶段
- 测试:找出程序中存在的缺陷或错误。
- 固化:让程序的错误可重现。
- 定位:确定相关的代码行。
- 纠正:修改代码纠正错误。
- 验证:确定修改解决了问题。
* 调试工具
1> gdb
栈跟踪:backtrace
打补丁:set variable n = 20 /*修改程序(变量值)而不需要改变程序的源代码并重新编译,也被称为打补丁*/
2> 静态分析:只能通过程序的源代码提供信息
- ctags:为程序中的所有函数创建索引。每个函数对应一个列表,在列表中列出该函数在程序中的调用位置。
用法:
ctags [-a] [-f filename] sourcefile sourcefile ...
ctags -x sourcefile sourcefile ...
- cxref:分析C语言源代码并生成一个交叉引用表。它可以显示每个符号都在程序的哪个位置使用过,它生成的是一个经过排序的列表,每个符号的定义位置用一个星号(*)做标记。
- cflow:打印出一个函数调用树,它显示了函数之间调用的关系。它可以让我们看清楚一个程序的框架结构,理解它的操作流程,了解对某个函数的改动将会产生怎样的影响。
3> 动态分析:提供与程序执行过程中的行为有关的信息。如,已经执行了哪些函数以及这些函数的执行时间。
prof/gprof产生执行存档。
程序的执行存档可以显示执行它所花费的时间具体都用在什么操作上。
4> lint:清理程序中的“垃圾”
splint:提供有用的代码审查注释
5> 内存调试
valgrind:检测数组访问错误和内存泄露。
0 0
- Linux程序设计笔记(第10章 调试)
- Linux程序设计笔记(第4章 Linux环境)
- linux程序设计笔记10:gdb调试
- Linux程序设计笔记(第1章 入门)
- Linux程序设计笔记(第3章 文件操作)
- Linux程序设计笔记(第9章 开发工具)
- Linux程序设计笔记(第11章 进程和信号)
- Linux程序设计笔记(第12章 POSIX线程)
- Linux程序设计笔记(第15章 套接字)
- [Linux程序设计笔记]第12章:管道
- Linux程序设计笔记 第2章shell程序设计
- 《Linux程序设计》学习笔记10——调试
- Linux程序设计笔记(第13章 进程间通信:管道)
- Linux程序设计笔记(第14章 信号量、共享内存和消息队列)
- 《Linux程序设计》第4版 核心笔记
- Linux程序设计第二章 shell程序设计 笔记
- linux程序设计——调试(第十章)
- 《LINUX设备驱动程序》第4章(调试技术)学习笔记
- 理解Linux系统/etc/init.d目录和/etc/rc.local脚本
- 进程间通信与线程间通信简单总结
- Linux程序设计笔记(第9章 开发工具)
- SPRINGMVC的核心原理
- POJ1990 MooFest 树状数组(Binary Indexed Tree,BIT)
- Linux程序设计笔记(第10章 调试)
- opengl
- Linux程序设计笔记(第11章 进程和信号)
- 【整理】编程单词缩写规则
- 2014最新搭建Android开发环境步骤
- Android:Handler
- 函数调用过程探究
- openwrt编译bluez工具gatttool
- Linux程序设计笔记(第12章 POSIX线程)