This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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: [patch] Fix a crash when displaying variables from shared library.


On Tue, Mar 3, 2009 at 4:48 PM, Tom Tromey <tromey@redhat.com> wrote:

> Paul> Is it ok to move observer notification to before
> Paul> objfile_purge_solibs, or should I add a new notification?
>
> IMO it is ok to move this notification if you audit the existing users
> to make sure they don't break.

I ended up just swapping the order of clear_solib and objfile_purge_solibs
in no_shared_libraries. AFAICT, objfile_purge_solibs is "lower level"
and doesn't need anything from the solib list.

Regtested on Linux/x86_64 with no regressions.

> However, it seems to me that you could also do this another way, by
> noting at parse time which objfiles are referenced by a given display,
> and then arranging to require a re-parse when an objfile is destroyed.
> I think the existing objfile_data machinery could be used for this.

Thanks for the pointer.

I tried that, but it ended up being very tangled and inefficient mess,
and I abandoned this approach.

Thanks,
-- 
Paul Pluzhnikov


ChangeLog:

2009-03-04  Paul Pluzhnikov  <ppluzhnikov@google.com>

       * printcmd.c (do_one_display): Reparse exp_string.
       (display_uses_solib_p): New function.
       (clear_dangling_display_expressions): New function.
       (_initialize_printcmd): Add observer.
       * solib.c (no_shared_libraries): Swap order of calls to
       clear_solib and objfile_purge_solibs.

testsuite/ChangeLog:

2009-02-04  Paul Pluzhnikov  <ppluzhnikov@google.com>

       * solib-display.exp: New file.
       * solib-display-main.c: New file.
       * solib-display-lib.c: New file.

Attachment: gdb-display-crash-20090304-1.txt
Description: Text document


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