## 23 Extending GDB ¶

GDB provides several mechanisms for extension. GDB also provides the ability to automatically load extensions when it reads a file for debugging. This allows the user to automatically customize GDB for the program being debugged.

To facilitate the use of extension languages, GDB is capable of evaluating the contents of a file. When doing so, GDB can recognize which extension language is being used by looking at the filename extension. Files with an unrecognized filename extension are always treated as a GDB Command Files. See Command files.

You can control how GDB evaluates these files with the following setting:

`set script-extension off` ¶

  All scripts are always evaluated as GDB Command Files.

`set script-extension soft`

  The debugger determines the scripting language based on filename extension. If this scripting language is supported, GDB evaluates the script using that language. Otherwise, it evaluates the file as a GDB Command File.

`set script-extension strict`

  The debugger determines the scripting language based on filename extension, and evaluates the script using that language. If the language is not supported, then the evaluation fails.

`show script-extension`

  Display the current value of the `script-extension` option.

This setting is not used for files in the system-wide gdbinit directory. Files in that directory must have an extension matching their language, or have a `.gdb` extension to be interpreted as regular GDB commands. See What GDB Does During Startup.