This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch+7.7] Fix auto-load 7.7 regression [Re: [commit 2/2] Move processing of .debug_gdb_scripts to auto-load.c]
- From: Doug Evans <xdje42 at gmail dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Sun, 23 Feb 2014 15:27:29 -0800
- Subject: Re: [patch+7.7] Fix auto-load 7.7 regression [Re: [commit 2/2] Move processing of .debug_gdb_scripts to auto-load.c]
- Authentication-results: sourceware.org; auth=none
- References: <m34n6u4f2d dot fsf at sspiff dot sspiff dot org> <20140223212400 dot GA8831 at host2 dot jankratochvil dot net>
On Sun, Feb 23, 2014 at 1:24 PM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> Hi Doug,
>
> the regression affects any loading from /usr/share/gdb/auto-load .
>
> 5b2bf9471f1499bee578fcd60c05afe85794e280 is the first bad commit
> commit 5b2bf9471f1499bee578fcd60c05afe85794e280
> Author: Doug Evans <xdje42@gmail.com>
> Date: Fri Nov 29 21:29:26 2013 -0800
> Move .debug_gdb_script processing to auto-load.c.
> Simplify handling of auto-loaded objfile scripts.
>
> Fedora 20 x86_64
> $ gdb -q /usr/lib64/libgobject-2.0.so
> Reading symbols from /usr/lib64/libglib-2.0.so.0.3800.2...Reading symbols from /usr/lib/debug/usr/lib64/libglib-2.0.so.0.3800.2.debug...done.
> done.
> (gdb) _
>
> Fedora Rawhide x86_64
> $ gdb -q /usr/lib64/libgobject-2.0.so
> Reading symbols from /usr/lib64/libglib-2.0.so...Reading symbols from /usr/lib/debug/usr/lib64/libglib-2.0.so.0.3990.0.debug...done.
> done.
> warning: File "/usr/lib64/libglib-2.0.so.0.3990.0-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load:/usr/bin/mono-gdb.py".
> To enable execution of this file add
> add-auto-load-safe-path /usr/lib64/libglib-2.0.so.0.3990.0-gdb.py
> line to your configuration file "/home/jkratoch/.gdbinit".
> To completely disable this security protection add
> set auto-load safe-path /
> line to your configuration file "/home/jkratoch/.gdbinit".
> For more information about this security protection see the
> "Auto-loading safe path" section in the GDB manual. E.g., run from the shell:
> info "(gdb)Auto-loading safe path"
> (gdb) _
>
> That is it tries to load "forbidden"
> /usr/lib64/libglib-2.0.so.0.3990.0-gdb.py
> but it should load instead
> /usr/share/gdb/auto-load/usr/lib64/libglib-2.0.so.0.3990.0-gdb.py*
> Although that is also not exactly this way, there does not exist any
> /usr/lib64/libglib-2.0.so.0.3990.0-gdb.py
> despite regressed GDB says so.
>
>
>
> Regards,
> Jan
>
> gdb/
> 2014-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * auto-load.c (auto_load_objfile_script_1): Change filename to
> debugfile.
>
> gdb/testsuite/
> 2014-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * gdb.base/auto-load-script: New file.
> * gdb.base/auto-load.c: New file.
> * gdb.base/auto-load.exp: New file.
Crap. "Sorry about that chief."
I filed this:
https://sourceware.org/bugzilla/show_bug.cgi?id=16626
If we make 7.7.1 this should definitely go in.
Your fix looks fine to me with one nit:
The .exp file is missing a test for native or a call to
gdb_remote_download to download the script.
You might also want to add a test to verify gdb won't load the wrong
file that it's trying to do now.