coelhudo
coelhudo

Reputation: 5080

How to save settings in gdb?

Does anyone know how to save gdb settings (like "set print pretty on" or "set print elements 0", both from here)? I don't want to set my configuration every time that I will use gdb :/

I searched in google and SO, but I found nothing.

Upvotes: 52

Views: 32682

Answers (3)

Abdull
Abdull

Reputation: 27832

The authorative Debugging with GDB manual explains initialization files. In particular, the manual says the following for user-specific home directory initialization files:

There are a number of locations that GDB will search in the home directory, these locations are searched in order and GDB will load the first file that it finds, and subsequent locations will not be checked.

On non-Apple hosts the locations searched are:

$XDG_CONFIG_HOME/gdb/gdbinit 
$HOME/.config/gdb/gdbinit
$HOME/.gdbinit

While on Apple hosts the locations searched are:

$HOME/Library/Preferences/gdb/gdbinit
$HOME/.gdbinit

Furthermore, there exist home directory early initialization files, system wide initialization files, and local directory initialization file. The documentation explains their evaluation order.

Upvotes: 1

Zitrax
Zitrax

Reputation: 20255

The existing answer works for commands that can run before the binary is loaded, but for example if you want to add catch throw you cannot do it in .gdbinit since that command needs to run after the binary is loaded.

But gdb can take a file with commands to run after binary loading using:

-x file
       Execute GDB commands from file file.

I automated that by creating an alias:

alias gdb='gdb -x ~/.gdbinit_x'

and added my after binary load commands in that file.

Upvotes: 8

tyranid
tyranid

Reputation: 13318

Add any commands you want to auto run in the .gdbinit file in your home directory.

Upvotes: 92

Related Questions