linux c编程工具使用之gdb
来源:互联网 发布:淘宝联盟怎么发布产品 编辑:程序博客网 时间:2024/06/03 20:22
gdb
gdb:GUN debugger
- 启动程序,可按照用户自定义的要求随心所欲的运行程序。
- 可让被调试的程序在用户所指定的调试的断点处停住(断点支持条件表达式)
- 当程序停住时,可以检查此时程序中所发送的事。
- 动态改变程序的执行环境。
启动gdb调试程序
- gdb
- gdb core
- gdb
一些选项
查看
- list/l:查看最近10行源码
- l 1:查看第一行起始的代码
- l 2,10 查看第二行到第十行代码
- 1 ,15最多查看到第15行代码
- l main:查看主函数代码
- list fun:查看fun函数源码
- list file:fun 查看file中的fun函数源码
断点
- break/b:设置断点
- break 行号:设定断点
- break fun
- break file:行号
- break file:fun
- break if :条件成立时程序停住,比如b if i=50
- info break:查看断点(也可缩写为i b)
- watch expr:expr改变时,程序停住
单步调试
- run(r):启动程序(可带参数,即传给程序的参数列表)
- step(s):单步跟踪,进入函数,类似step in
- next(n):单步跟踪,不进入函数,类似step out
- print(p) 变量名(print变量值或表达式)
- until:跳出循环(此时运行到循环外的下一条指令)
- continue(c):运行到下一个断点
- finish:运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值及参数值等信息。
查看运行时数据
- print可缩写为p
- print:查看变量值
- ptype:查看类型
- print array:查看数组
- print *array@n:查看动态数组前n个元素
- 对于静态数组array,print *array@2:表示打印从第0个元素开始的两个元素
- print 变量名=值:更改变量的值
- bt:函数调用栈回溯
程序错误
- 编译错误
- 运行时错误
逻辑错误
段错误就是由于访问非法地址而产生的错误,访问系统数据区,尤其是往系统保护的内存地址写数据。最常见的就是给一个指针以0地址;内存越界(数组越界,变量类型不一致等)访问到不属于你的内存区域。
core文件调试
- 在程序崩溃时,一般会生成一个文件叫core文件。core文件记录的是程序崩溃时的内存映像,并加入调试信息。core文件生成的过程叫做core dump
生成core文件
- ulimit -c 查看core-dump状态
- 以下两条命令设置core文件大小
- ulimit -c 数字(如:ulimit -c 1024)
- ulimit -c unlimited
使用core文件
- gdb 产生core文件的程序名 core文件
0 0
- linux c编程工具使用之gdb
- linux c/c++ 编程之-----gdb 使用
- linux C编程之二[GDB调试]
- linux下c编程之gdb调试
- GDB 使用——Linux C编程
- GDB 使用——Linux C编程
- GDB 使用——Linux C编程
- linux C编程 gdb的使用
- Linux 之GDB工具
- linux C 调试工具gdb
- 编程工具系列之 ------使用GDB的堆栈跟踪功能
- linux c之gdb
- linux c 开发工具gcc gdb的使用:
- linux开发工具之gdb
- Linux开发工具之gdb
- Linux下的C编程实战之gcc/gdb/make
- LINUX下的C编程实战之gcc/gdb/make
- Linux下的C编程实战之gcc\gdb\make
- set_include_path和get_include_path用法详解
- overload和override的区别
- django 修改server端口号
- http响应Last-Modified和ETag以及Apache和Nginx中的配置
- 二叉树做题总结
- linux c编程工具使用之gdb
- 基本类型的装箱与拆箱的比较
- 文本关键词提取算法
- redis 安装及操作详解
- C++初学之路:类的组合
- 使用Systemtap生成Flame Graph(火焰图)
- [NOIP2000P4]单词接龙
- random()函数
- 购物车