Linux程序设计:调试
来源:互联网 发布:防伪底纹软件 编辑:程序博客网 时间:2024/06/06 16:51
本文主要介绍了几个比较有用的调试工具或工具
1 取样法
用C语言的预编译器有选择的加上取样代码
而后我们只需要编译时加上-DDEBUG这个选项就能启动这些内容
上面这种情况为我们提供了更加复杂的格式,在这种情况下我们必须总是定义DEBUG的值如 :-DDEBUG=1我们就启动了BASIC——DEBUG的内容
下面是我们在可以在这些预编译器可以使用的一些变量
然后是gdb的使用,gdb是个很强大的工具
你可以通过 gdb test(待调试的程序名)
通过输入help能查看gdb的使用
gdb运行程序时会在发生错误的地方停下来
我们可以通过命令backtrace来查看我们是如何到达这个地方的(栈追踪)
print用来查询变量,结果会保持在$!,$2......这些临时变量中,其中最后一个变量一般为$,倒数第二个为$$
list用来列出一个行号附近的所有代码
break 用来设置断点
cont用于继续执行
display使得到达断点时不会停止而只是输出内容但是不会停止
commands由用于指定到达断点时要执行的命令
i
disable用来禁用断点和display命令
如: dilsable break 1
command 可以用来打补丁 ,也就是用来执行某些代码 使得错误被改正
ctags 用来输出每个函数的信息,包括:函数名,位于哪个文件,可以在这个文件找到他的正则表达式
cflows输出一个函数调用树(加-i反向输出)
在调试时加上-p或者-pg能产生执行存档
断言asser这个好像就是对表达式进行求值,如果为非零就会在标准错误里写入一些错误信息,要注意的是如果已经定义了NDEBUG宏就不要再定义assert了
ElectricFence和valgrindf两个都是用来调试内存的
ElectricFence是对函数库libefence.a的连接,会将所有malloc和与之相关的函数全部变为虚拟内存机制的版本
而如果要检查内存泄露一定要用的是valgrind
用法例子
valgrind --leak-check=yes -v ../check
- Linux程序设计:调试
- linux程序设计:调试
- 《Linux程序设计》——调试
- linux程序设计笔记10:gdb调试
- linux 应用程序设计基础--GDB调试
- 《Linux程序设计》学习笔记10——调试
- Linux程序设计笔记(第10章 调试)
- linux程序设计——调试(第十章)
- linux程序设计,MySQL与gdb调试学习,第二次调试时速度明显上升
- 程序设计:分析,构思,调试
- linux程序设计
- Linux程序设计
- linux程序设计
- Linux程序设计(-)
- linux 下的编译器和调试器---那些年我们一起学习linux程序设计
- 【原创】《Linux高级程序设计》杨宗德著 - Linux Socket网络编程基础 - 网络调试工具
- LINUX程序设计-socket程序设计
- [linux]Linux程序设计cc2--shell程序设计
- 有关任务和日程的20个建议,大大提升你的工作效率
- 有沃更精彩,沃课堂理想的移动学习平台
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- Java Filter过滤机制详解
- poj 3264RMQ问题(线段树,ST算法)
- Linux程序设计:调试
- fstat、stat和lstat 区别
- auto_ptr智能指针的缺点
- [小技巧] 使用df按不同SIZE的单位查看磁盘容量
- 二叉树计算的一些规律
- Use Case新手上路
- C语言枚举类型
- maven 教程一 入门
- 值得推荐的android开发框架简介