---
title: GDB
description: "GDB是GNU开源组织发布的一个强大的UNIX及类UNIX环境下的用户态程序调试工具，是C/C++程序调试的主流工具。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenggrf/ref/kunpenggrffaq_10_0020.html
sourcePath: /source/zh/kunpenggrf/ref/kunpenggrffaq_10_0020.html
indexId: 43732a7e2095277421f3a412b33c41770bc80c61348a612da080486ead6e91a252
---
# GDB

#### 介绍

GDB是GNU开源组织发布的一个强大的UNIX及类UNIX环境下的用户态程序调试工具，是C/C++程序调试的主流工具。


#### 安装

在CentOS操作系统下，通过yum安装GDB。

```
yum install gdb   //CentOS
```


#### 使用方式

- 直接调试应用程序

```
gdb program
```


  program为待调试的可执行文件。

- 调试应用程序的core文件

```
gdb program core
```


  core为程序非法执行后core dump后产生的文件。

- GDB调试运行中的程序

```
gdb program $PID
```


  PID为需要调试的程序PID号。

- GDB调试命令

```
(gdb) command *args
```


  上述三种方式进入GDB调试页面，会出现(gdb)，command是需要执行的调试命令（部分命令有简写），*args是部分调试命令需要的参数。

  常用参数如下：
| 命令 | 用途 |
| --- | --- |
| r | 运行程序，当遇到断点后，程序会在断点处停止运行，等待用户输入下一步的命令。 |
| c | 继续执行，到下一个断点处。 |
| n | 单步跟踪程序，当遇到函数调用时，不进入此函数体，直接调用函数。 |
| s | 单步调试如果有函数调用，则进入函数。 |
| until | 运行程序直到退出循环体。 |
| finish | 运行程序，直到当前函数完成返回。 |
| call | 用程序中可见的函数，并传递“参数”。 |
| l | 查看源码；list n查看n行前后10行，list func查看函数源码。 |
| b n | 在n行处加断点。 |
| b func | 在函数func()的入口处设置断点。 |
| clear n | 清除第n行的断点。 |
