.gdbinit | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .gdbinit
The scripts/qemu-gdb.py file is not easily discoverable. Add a .gdbinit
file so GDB either loads qemu-gdb.py automatically or prints a message
informing the user how to enable them (some systems disable ./.gdbinit
loading for security reasons).
Suggested-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
.gdbinit | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 .gdbinit
diff --git a/.gdbinit b/.gdbinit
new file mode 100644
index 0000000..9d322fc
--- /dev/null
+++ b/.gdbinit
@@ -0,0 +1,8 @@
+# GDB may have ./.gdbinit loading disabled by default. In that case you can
+# follow the instructions it prints. They boil down to adding the following to
+# your home directory's ~/.gdbinit file:
+#
+# add-auto-load-safe-path /path/to/qemu/.gdbinit
+
+# Load QEMU-specific sub-commands and settings
+source scripts/qemu-gdb.py
--
2.9.3
On 05/15/2017 10:47 AM, Stefan Hajnoczi wrote: > The scripts/qemu-gdb.py file is not easily discoverable. Add a .gdbinit > file so GDB either loads qemu-gdb.py automatically or prints a message > informing the user how to enable them (some systems disable ./.gdbinit > loading for security reasons). > > Suggested-by: Eric Blake <eblake@redhat.com> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > .gdbinit | 8 ++++++++ > 1 file changed, 8 insertions(+) > create mode 100644 .gdbinit > > diff --git a/.gdbinit b/.gdbinit > new file mode 100644 > index 0000000..9d322fc > --- /dev/null > +++ b/.gdbinit > @@ -0,0 +1,8 @@ > +# GDB may have ./.gdbinit loading disabled by default. In that case you can > +# follow the instructions it prints. They boil down to adding the following to > +# your home directory's ~/.gdbinit file: > +# > +# add-auto-load-safe-path /path/to/qemu/.gdbinit > + > +# Load QEMU-specific sub-commands and settings > +source scripts/qemu-gdb.py >
Stefan Hajnoczi <stefanha@redhat.com> writes: > The scripts/qemu-gdb.py file is not easily discoverable. Add a .gdbinit > file so GDB either loads qemu-gdb.py automatically or prints a message > informing the user how to enable them (some systems disable ./.gdbinit > loading for security reasons). > > Suggested-by: Eric Blake <eblake@redhat.com> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > .gdbinit | 8 ++++++++ > 1 file changed, 8 insertions(+) > create mode 100644 .gdbinit > > diff --git a/.gdbinit b/.gdbinit > new file mode 100644 > index 0000000..9d322fc > --- /dev/null > +++ b/.gdbinit > @@ -0,0 +1,8 @@ > +# GDB may have ./.gdbinit loading disabled by default. In that case you can > +# follow the instructions it prints. They boil down to adding the following to > +# your home directory's ~/.gdbinit file: > +# > +# add-auto-load-safe-path /path/to/qemu/.gdbinit > + > +# Load QEMU-specific sub-commands and settings > +source scripts/qemu-gdb.py While this works well enough you might as well just comment the helper script itself. Would this script take precedence over a users ~/.gdbinit? How would it work for out-of-tree builds? GDB does have a mechanism for autoloading extensions by way of adding ELF sections: https://sourceware.org/gdb/current/onlinedocs/gdb/dotdebug_005fgdb_005fscripts-section.html#dotdebug_005fgdb_005fscripts-section -- Alex Bennée
On Mon, May 15, 2017 at 03:17:28PM +0100, Alex Bennée wrote: > > Stefan Hajnoczi <stefanha@redhat.com> writes: > > > The scripts/qemu-gdb.py file is not easily discoverable. Add a .gdbinit > > file so GDB either loads qemu-gdb.py automatically or prints a message > > informing the user how to enable them (some systems disable ./.gdbinit > > loading for security reasons). > > > > Suggested-by: Eric Blake <eblake@redhat.com> > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > > --- > > .gdbinit | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > create mode 100644 .gdbinit > > > > diff --git a/.gdbinit b/.gdbinit > > new file mode 100644 > > index 0000000..9d322fc > > --- /dev/null > > +++ b/.gdbinit > > @@ -0,0 +1,8 @@ > > +# GDB may have ./.gdbinit loading disabled by default. In that case you can > > +# follow the instructions it prints. They boil down to adding the following to > > +# your home directory's ~/.gdbinit file: > > +# > > +# add-auto-load-safe-path /path/to/qemu/.gdbinit > > + > > +# Load QEMU-specific sub-commands and settings > > +source scripts/qemu-gdb.py > > While this works well enough you might as well just comment the helper > script itself. People don't know scripts/qemu-gdb.py exists so adding a comment there doesn't help. > Would this script take precedence over a users ~/.gdbinit? All gdbinit files are loaded. The order in which they are loaded is: 1. System-wide 2. Home directory 3. Current directory https://sourceware.org/gdb/onlinedocs/gdb/Startup.html#Startup > How would it work for out-of-tree builds? ./.gdbinit assumes your current working directory is the root of the QEMU source tree. If gdb is launched outside this directory then nothing will happen (e.g. from arm-softmmu/ or from an out-of-tree build). I'm not sure if there is a simple way of making ./.gdbinit work from out-of-tree build directories. > GDB does have a mechanism for autoloading extensions by way of adding > ELF sections: > > https://sourceware.org/gdb/current/onlinedocs/gdb/dotdebug_005fgdb_005fscripts-section.html#dotdebug_005fgdb_005fscripts-section Hmm...this still requires the user to configure auto-load safe paths and it hardcodes a path into the QEMU binary (execute in-place vs make install generally wouldn't work with the same binary).
On Tue, May 16, 2017 at 11:45:56AM +0100, Stefan Hajnoczi wrote: > On Mon, May 15, 2017 at 03:17:28PM +0100, Alex Bennée wrote: > > > How would it work for out-of-tree builds? > > ./.gdbinit assumes your current working directory is the root of the > QEMU source tree. If gdb is launched outside this directory then > nothing will happen (e.g. from arm-softmmu/ or from an out-of-tree > build). > > I'm not sure if there is a simple way of making ./.gdbinit work from > out-of-tree build directories. Just add a Makefile rule, as a pre-requisite of qemu system arch build, that symlinks $srcdir/.gdbinit into $builddir, or something like that. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
© 2016 - 2024 Red Hat, Inc.