gdb provides three mechanisms for extension. The first is based on composition of gdb commands, the second is based on the Python scripting language, and the third is for defining new aliases of existing commands.
To facilitate the use of the first two extensions, gdb is capable of evaluating the contents of a file. When doing so, gdb can recognize which scripting 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
set script-extension soft
set script-extension strict