gdb(一)概述

来源:互联网 发布:ubuntu vbox 打不开 编辑:程序博客网 时间:2024/05/16 00:54

一 GDB的主要功能(man gdb):www.gnu.org/software/gdb/

1)启动你的程序,可以按照你的自定义要求运行程序。

2)使你的程序在特定条件下停止。

3)当程序停止时,检测发送什么事情。

4)Change  things  in your program, so you can experiment with correcting the effects of one bug and go on to learn about another.

注意:要调试C/C++程序,必须使用编译器的-g选项把调试信息添加到可执行文件中。如:gcc -g -c hello hello.c


二 GDB的启动方法:

(一)三种启动方法:

1) gdb<program>:program 是你的执行文件。

2) gdb<program> core:同时调试一个运行程序和core文件。core文件是:

3) gdb<program> <PID>:调试运行程序运行时的进程PID。


(二)GDB启动时可以加上一些启动参数,详细的参数通过gdb -help来查看。

*常用的参数:

1) -s FILE,-symbols=FILE:Read symbol table from file FILE.

2)-se=FILE:Read symbol table from file FILE and use it as the executable file.

3)-c FILE,-core=FILE:use file FILE as a core dump to examine.

补充:在一个程序崩溃时,它一般会在指定目录下生成一个core文件。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,主要是用来调试的。core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump.

4)-cd=directory:Run GDB using direction as its working direction,instead of the current direction.

5)-d DIRECTION,-direction=DIRECTION:Add direction to the path to search for source file.


三 GDB的常用命令:

(一)GDB把命令分为许多种类,启动gdb后,查看命令的方法:

1)help命令可以列出命令的种类。如下:


2)如果要看到种类中的命令,需使用help<class>命令,例如:help breakpoints。

3)直接help<command>来查看命令的帮助。


(二)其他:

1)在gdb环境中,可以执行shell命令。格式:shell <command>。

2)在gdb中可以执行make命令来重新build自己的程序。


四 GDB调试方法:

(一)在GDB中运行程序:在gdb中使用run或r命令来运行程序。程序运行前,可以设置如下四个方面的事情:

1) 程序运行参数:

*set args:可指定运行时参数。(如:set args 10 20 30)

*show args:查看设置好的运行参数。

2)运行环境:

*path<dir>:设置程序的运行路径。

*show paths:查看程序的运行路径。

*set environment varname[=value]:设置环境变量。

*show environment [varname]:查看环境变量。

3)工作目录:

*cd <dir>:相当于shell的cd 命令。

*pwd:显示当前所在的目录。

4)程序的输入输出:

*info terminal:显示程序用的终端的模式。

*使用重定向控制程序输出。如:run>txt。

*tty命令指定输入输出的终端设备。


(二)调试已运行的程序方法:

1):用ps查看正在运行程序的PID(进程ID),然后用gdb<program> PID格式挂接正在运行的程序。(ubuntu下需要root权限)

2):先用gdb<program>关联上源代码,并运行gdb,在gdb中用attach命令来挂接进程的PID和detach来取消挂接的进程。

















原创粉丝点击