[patch+7.7] Fix auto-load 7.7 regression [Re: [commit 2/2] Move processing of .debug_gdb_scripts to auto-load.c]

Doug Evans xdje42@gmail.com
Sun Feb 23 23:27:00 GMT 2014


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.



More information about the Gdb-patches mailing list