8.16——gdb调试命令

一、什么是GDB?

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。

二、GDB完成的功能

GDB主要帮忙你完成下面四个方面的功能:
1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、动态的改变你程序的执行环境。

三、GDB调试命令

1、编译生成执行文件:(Linux下)
hchen/test> cc -g tst.c -o tst

2、启动GDB调试

启动GDB的方法有以下几种:

1、gdb <program>
program也就是你的执行文件,一般在当然目录下。
2、gdb <program> core
用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。
3、gdb <program> <PID>
如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。
program应该在PATH环境变量中搜索得到。
GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。我在下面只例举一些比较常用的参数:
-symbols <file>
-s <file>
从指定文件中读取符号表。
-se file
从指定文件中读取符号表信息,并把他用在可执行文件中。
-core <file>
-c <file>
调试时core dump的core文件。
-directory <directory>
-d <directory>
加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。


3、使用GDB调试常用命令
hchen/test> gdb tst <---------- 启动GDB

(gdb) l <-------------------- l命令相当于list,从第一行开始例出原码。

(gdb) <-------------------- 直接回车表示,重复上一次命令

(gdb) break 16 <-------------------- 设置断点,在源程序第16行处。

(gdb) break func <-------------------- 设置断点,在函数func()入口处。

(gdb) info break <-------------------- 查看断点信息

(gdb) r <--------------------- 运行程序,run命令简写

(gdb) n <--------------------- 单条语句执行,next命令简写。

(gdb) c <--------------------- 继续运行程序,continue命令简写。

(gdb) p i <--------------------- 打印变量i的值,print命令简写

(gdb) bt <--------------------- 查看函数堆栈。

(gdb) finish <--------------------- 退出函数。

(gdb) q <--------------------- 退出gdb。

posted on 2013-08-16 21:52  baiting0317  阅读(211)  评论(0编辑  收藏  举报

导航