Ted's Blog

Happy coding

gdb的最简单用法

Ted posted @ 2008年8月28日 22:13 in 未分类 with tags gdb , 3629 阅读

1.在编译时加入参数 ”-g” 使编译出来的程序带debug信息

$>gcc test.c –g –o test

2. gdb运行程序

a)         运行gdb

$>gdb test

b)        运行程序,带参数

(gdb) run arg1 arg2 arg3

3.连接到一个正在执行的程序

a)         看该程序的进程号

$>ps –aux

b)        运行gdb

$>gdb

c)        连接gdb与该进程

(gdb) attach 进程号

d)        此时程序处于中断状态,让程序往下执行

(gdb) continue

4.设置断点

a)         设置断点

(gdb) break 函数名

(gdb) break 46 if testsize==100  如果变量testsize等于100,则在46行停

b)        执行到断点后程序就停下来了,此时让程序执行下一行

                         i.              执行下一行,如遇函数跳过

(gdb) next

                       ii.              执行下一行,如遇函数进入

(gdb) step

                      iii.              如果在step时进入了函数,执行到一半想跳过函数

              (gdb) finish

c)        让程序继续往下执行 

(gdb) continue

d)        删除断点

                         i.              删除某一断点

(gdb) delete breakpoint 断点号

                       ii.              删除所有断点

(gdb) clear

5.看变量状态

a)         显示变量值

(gdb) print 变量名

b)        显示变量类型

(gdb) whatis 变量名

6.看程序中的当前位置(在程序死了的时候看容易看到是怎么死的)

(gdb) backtrace (gdb) where

7.看相应程序代码

按键Ctrl+x, 再铵a, 则可以看到当前执行的程序所对应的代码,再按一遍切回去


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter