GDB-ADD-INDEX(1) GNU Development Tools GDB-ADD-INDEX(1)

# [NAME](#NAME)

gdb-add-index - Add index files to speed up GDB

# [SYNOPSIS](#SYNOPSIS)

gdb-add-index \[-h | --help] \[-v | --version] \[--dwarf-5] *filename*

# [DESCRIPTION](#DESCRIPTION)

When GDB finds a symbol file, it scans the symbols in the file in order to construct an internal symbol table. This lets most GDB operations work quickly--at the cost of a delay early on. For large programs, this delay can be quite lengthy, so GDB provides a way to build an index, which speeds up startup.

To determine whether a file contains such an index, use the command "readelf -S filename": the index is stored in a section named ".gdb\_index" (pre-DWARF 5) or ".debug\_names" and ".debug\_str" (DWARF 5). Indexes can only be produced on systems which use ELF binaries and DWARF debug information (i.e., sections named ".debug\_\*").

By default **gdb-add-index** will add a pre-DWARF 5 ".gdb\_index" section to *filename*. With **--dwarf-5** the DWARF 5 section ".debug\_names" is added instead.

*filename* must be writable.

**gdb-add-index** uses GDB, **objcopy**, and **readelf** found in the **PATH** environment variable. If you want to use different versions of these programs, you can specify them through the appropriate environment variables (see below).

**gdb-add-index** exits with status 0 if it succeeds in creating the index for *filename* or greater than 0 if an error occurs.

See more in the GDB manual in node "Index Files" -- shell command "info -f gdb -n "Index Files"".

# [OPTIONS](#OPTIONS)

[**--dwarf-5**](#dwarf)

Add DWARF 5 sections instead of previous ".gdb\_index" section.

[**--help**](#help)

[**-h**](#h)

List all options, with brief explanations.

[**--version**](#version)

[**-v**](#v)

Print version information and then exit.

# [ENVIRONMENT](#ENVIRONMENT)

[**GDB**](#GDB)

Full file name of the "gdb" program to use for index generation. If not set, the **PATH** will be searched for a "gdb" program.

[**OBJCOPY**](#OBJCOPY)

Full file name of the "objcopy" program to use to copy section information into the given file. If not set, the **PATH** will be searched for a "objcopy" program.

[**READELF**](#READELF)

Full file name of the "readelf" program to use to inspect properties of the given file. If not set, the **PATH** will be searched for a "readelf" program.

# [SEE ALSO](#SEE_ALSO)

The full documentation for GDB is maintained as a Texinfo manual. If the "info" and "gdb" programs and GDB's Texinfo documentation are properly installed at your site, the command

```
        info gdb
```

should give you access to the complete manual.

*Using GDB: A Guide to the GNU Source-Level Debugger*, Richard M. Stallman and Roland H. Pesch, July 1991.

# [COPYRIGHT](#COPYRIGHT)

Copyright (c) 1988-2026 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being "Free Software" and "Free Software Needs Free Documentation", with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below.

(a) The FSF's Back-Cover Text is: "You are free to copy and modify this GNU Manual. Buying copies from GNU Press supports the FSF in developing GNU and promoting software freedom."

2026-09-25 gdb-18.1

---

Document: gdb-add-index(1) from gdb 18.1-r0 (Chainguard OS)
Source: https://gitlab.com/gnutools/binutils-gdb.git
