This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unable to register GDB Pretty Printers permanently.

On 2019-10-14 04:32, Spellstaker wrote:
> I recently installed cygwin and the pretty printers for strings and vectors
> aren't registered by default like it is in mingw what should I do? Docs
> online suggest registering in .gdbinit file in home directory I did put
> that in home directory but to no avail I do get pretty printing when I
> manually register it tho But it isn't persistent
> OS: Windows 10
> GDB: 8.2.1
> G++: 8.3.0

As documented under "$ info gdb Invoking Startup":
"To display the list of init files loaded by gdb at startup, you can
use 'gdb --help'."
$ gdb --help
At startup, GDB reads the following init files and executes their commands:

For more information, type "help" from within GDB, or consult the
GDB manual (available as on-line info or a printed manual).
Report bugs to "<>".

You can check the gdb configuration with:

$ gdb --configuration
This GDB was configured as follows:
   configure --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin
             --with-gdb-datadir=/usr/share/gdb (relocatable)
             --with-jit-reader-dir=/usr/lib/gdb (relocatable)
             --with-python=/usr (relocatable)
             --with-separate-debug-dir=/usr/lib/debug (relocatable)

("Relocatable" means the directory can be moved with the GDB installation
tree, and GDB will still find it.)
$ gdb -q -iex 'show auto-load' -iex 'info auto-load' -iex q
gdb-scripts:  Auto-loading of canned sequences of commands scripts is on.
local-gdbinit:  Auto-loading of .gdbinit script from current directory is on.
python-scripts:  Auto-loading of Python scripts is on.
safe-path:  List of directories from which it is safe to auto-load files is
scripts-directory:  List of directories from which to load auto-loaded scripts
is $debugdir:$datadir/auto-load.
gdb-scripts:  No auto-load scripts.
local-gdbinit:  Local .gdbinit file was not found.
python-scripts:  No auto-load scripts.

$ l /usr/lib/debug/usr/ /usr/share/gdb/
bin/  sbin/

python/  syscalls/  system-gdbinit/

So it looks as though Cygwin gdb is configured and setup to source only startup
scripts from the current directory, but it may need to be or be added as a safe
path for that to work; or you create directory /usr/share/gdb/auto-load or
symlink that to a directory, and install startup scripts there; or create a gdb
alias to define scripts directory/-ies and execute init commands or files of
init commands with -iex and -ix:
$ alias gdb="/usr/bin/gdb -d "$GDB_SCRIPTS_DIR" -iex "add-auto-load-safe-path
$GDB_SCRIPTS_DIR" -ix $HOME/.gdbinit"

As you are running test releases, you can provide feedback on this list to the
Cygwin GDB maintainer about configuring, adding, or providing startup scripts,
where they are available on the web, under what licence, in which project.

Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]