月度归档:2015年08月

GDB简介

GDB常见用法

·设置断点
(gdb) break main
(gdb) break main.cpp:12 if i > 12
条件断点

格式: break 函数名
break 行号
break 文件名:行号
break 文件名:函数名
break +偏移量
break -偏移量
break *地址

·查看断点
(gdb) info break

·删除断点
(gdb) delete N
删除N号断点

·运行
(gdb) run

·显示所有栈帧
(gdb) backtrace
显示开头的栈帧
(gdb) bt N

·显示变量
(gdb) p argv
$1 = (char **) 0xb9d23f
(gdb) p argv[0]
$2 = (char *) “/bin/test.exec”

·显示寄存器
(gdb) info reg
(gdb) p $pc

·单步执行
(gdb) next

·继续执行
(gdb) continue
(gdb) continue N
继续几次,continue 5表示前面5次不会停下,第六次进入此断点时会停下。

·监视点
(gdb) watch <表达式>
<表达式>发生变化时真挺运行,表达式的意思指的是常量或变量
(gdb) awatch <表达式> 被访问时中断
(gdb) rwatch <表达式>

·删除监视点
(gdb) delete N 删除N号监视点 ·改变变量的值
(gdb) p i
$0 = 1
(gdb) set varible i = 0
(gdb) p i
$1 = 0
设置变量i的值
// end