GDB 使用入门
2015-11-07 21:18
218 查看
一、gdb 常用命令
二、应用示列
1、gdb 调试带参数的程序
gdb main
(gdb) set args arg1 arg2 arg3 // 相当于./main arg1 arg2 arg3
(gdb) r <--------------------- 运行程序,run命令简写
show args 命令可以查看设置好的运行参数。
2、设置断点:
break 可带如下参数:
linenum 本地行号,即list命令可见的行号
filename:linenum 制定个文件的行号
function 函数,可以是自定义函数也可是库函数,如open
filename:function 制定文件中的函数
condtion 条件
(gdb) break 16 // 设置断点,在源程序第16行处。
(gdb) break func // 设置断点,在函数func()入口处。
(gdb) info break // 查看断点信息。
break test.c:10
break test.c:main
break 10 if index == 3 // 条件断点
3、调试步命令:
(gdb) start
// 开始执行程序,停在
(gdb) n // 单条语句执行,next命令简写。
(gdb) c // 继续运行程序,continue命令简写。
(gdb) s // 执行下一行语句,如果有函数调用则进入到函数中
(gdb) finish // 退出函数。
4、输出信息:
(gdb) p i // 打印变量i的值,print命令简写。
(gdb) bt // 查看函数堆栈。
命令 | 描述 |
---|---|
backtrace(或bt) | 查看各级函数调用及参数 |
finish | 连续运行到当前函数返回为止,然后停下来等待命令 |
frame(或f) 帧编号 | 选择栈帧 |
info(或i) locals | 查看当前栈帧局部变量的值 |
list(或l) | 列出源代码,接着上次的位置往下列,每次列10行 |
list 行号 | 列出从第几行开始的源代码 |
list 函数名 | 列出某个函数的源代码 |
next(或n) | 执行下一行语句 |
print(或p) | 打印表达式的值,通过表达式可以修改变量的值或者调用函数 |
quit(或q) | 退出gdb调试环境 |
set var | 修改变量的值 |
start | 开始执行程序,停在main函数第一行语句前面等待命令 |
step(或s) | 执行下一行语句,如果有函数调用则进入到函数中 |
1、gdb 调试带参数的程序
gdb main
(gdb) set args arg1 arg2 arg3 // 相当于./main arg1 arg2 arg3
(gdb) r <--------------------- 运行程序,run命令简写
show args 命令可以查看设置好的运行参数。
2、设置断点:
break 可带如下参数:
linenum 本地行号,即list命令可见的行号
filename:linenum 制定个文件的行号
function 函数,可以是自定义函数也可是库函数,如open
filename:function 制定文件中的函数
condtion 条件
(gdb) break 16 // 设置断点,在源程序第16行处。
(gdb) break func // 设置断点,在函数func()入口处。
(gdb) info break // 查看断点信息。
break test.c:10
break test.c:main
break 10 if index == 3 // 条件断点
3、调试步命令:
(gdb) start
// 开始执行程序,停在
main函数第一行语句前面等待命令
(gdb) n // 单条语句执行,next命令简写。
(gdb) c // 继续运行程序,continue命令简写。
(gdb) s // 执行下一行语句,如果有函数调用则进入到函数中
(gdb) finish // 退出函数。
4、输出信息:
(gdb) p i // 打印变量i的值,print命令简写。
(gdb) bt // 查看函数堆栈。
相关文章推荐
- Linux socket 初步
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- 神器SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断