gdb详解---写在gdb边上

来源:互联网 发布:免费陌生人聊天软件 编辑:程序博客网 时间:2024/05/17 02:11

本人鸟蛋,由于太菜,不敢称为菜鸟,只能自称鸟蛋。以下内容全是胡扯,如有价值,纯属巧合。

Gdb的主要作用是调试一个程序,调试一个进程或者查看当程序崩溃时在执行那条语句。

为了帮助你发现程序的 bugGdb主要做四件事情:

1.开始运行程序并指定参数

2.设置断点,观察点等

3.当程序在断点停止时,查看程序的上下文环境(变量值,内存状况等)

4.在程序运行时,改变程序中变量的值

Gdb主要用来调试c,c++程序。使用gdb开始调试,quit退出,help获取帮助。

gdb启动时,可以不带参数,但是最常用的是带一个或者两个参数:

gdb:不带参数。

Gdb program:带一个参数,指定可运行程序。

Gdb program core :带俩参数,指定core文件,一般当程序异常崩溃时,程序的当前文件夹会由一个core文件。

Gdb program pid:俩参数,制定进程id,可以调试一个正在运行中的程序。

下面是一些最常用的命令:

Break [file:]function \ Break [file:]num 在指定文件的指定函数或者行号处设置断点,如果不指定文件,默认为当前文件。

Run [arglist] 以指定参数运行程序,如果程序没有参数,则不用arglist,程序会一直运行到结束或者遇到断点

Start [arglist] 开始运行程序,程序停在main函数的第一条语句处。

Bt :backtrace:查看程序调用堆栈

Fr num:暂时进入某一个堆栈,可以查看相应堆栈中的数据

Print expr 打印表达式的值,当然表达式可以为程序中的变量设置新值

Ccontinue:从断点继续运行程序,程序将运行到下一个断点,或者程序结尾。

N(next):运行到下一行(单步调试)

S(step):进入到函数中去(单步调试)

List [file:]function/list [file:linenum 查看制定函数或者指定行号处的代码

另外基本所有命令都可以用简称或者全称,如果希望在运行时就指定程序的运行参数可以用以下命令:

Gdb -args program arglist

当在gdb命令行直接敲【回车】时,默认执行上条命令。比如查看代码,输入一个【l】,接下来可以直接敲【回车】查看代码

原创粉丝点击