* [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts
@ 2017-05-15 13:47 Stefan Hajnoczi
2017-05-15 13:49 ` Philippe Mathieu-Daudé
2017-05-15 14:17 ` Alex Bennée
0 siblings, 2 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2017-05-15 13:47 UTC (permalink / raw)
To: qemu-devel; +Cc: Eric Blake, Stefan Hajnoczi
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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts
2017-05-15 13:47 [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts Stefan Hajnoczi
@ 2017-05-15 13:49 ` Philippe Mathieu-Daudé
2017-05-15 14:17 ` Alex Bennée
1 sibling, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-15 13:49 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel
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
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts
2017-05-15 13:47 [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts Stefan Hajnoczi
2017-05-15 13:49 ` Philippe Mathieu-Daudé
@ 2017-05-15 14:17 ` Alex Bennée
2017-05-16 10:45 ` Stefan Hajnoczi
1 sibling, 1 reply; 6+ messages in thread
From: Alex Bennée @ 2017-05-15 14:17 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: qemu-devel
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts
2017-05-15 14:17 ` Alex Bennée
@ 2017-05-16 10:45 ` Stefan Hajnoczi
2017-05-16 11:04 ` Daniel P. Berrange
2017-05-16 11:05 ` Markus Armbruster
0 siblings, 2 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2017-05-16 10:45 UTC (permalink / raw)
To: Alex Bennée; +Cc: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 2382 bytes --]
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).
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts
2017-05-16 10:45 ` Stefan Hajnoczi
@ 2017-05-16 11:04 ` Daniel P. Berrange
2017-05-16 11:05 ` Markus Armbruster
1 sibling, 0 replies; 6+ messages in thread
From: Daniel P. Berrange @ 2017-05-16 11:04 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: Alex Bennée, qemu-devel
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 :|
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts
2017-05-16 10:45 ` Stefan Hajnoczi
2017-05-16 11:04 ` Daniel P. Berrange
@ 2017-05-16 11:05 ` Markus Armbruster
1 sibling, 0 replies; 6+ messages in thread
From: Markus Armbruster @ 2017-05-16 11:05 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: Alex Bennée, qemu-devel
Stefan Hajnoczi <stefanha@redhat.com> writes:
> 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.
Worth a try: ln -s $(SRC_PATH)/.gdbinit
If it works, we could have make create the link automatically.
[...]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-05-16 11:05 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-15 13:47 [Qemu-devel] [PATCH] .gdbinit: load QEMU sub-commands when gdb starts Stefan Hajnoczi
2017-05-15 13:49 ` Philippe Mathieu-Daudé
2017-05-15 14:17 ` Alex Bennée
2017-05-16 10:45 ` Stefan Hajnoczi
2017-05-16 11:04 ` Daniel P. Berrange
2017-05-16 11:05 ` Markus Armbruster
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).