public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug symtab/17855] New: clear_symtab_users doesn't call observer_notify_new_objfile (NULL) early enough
@ 2015-01-18  4:53 xdje42 at gmail dot com
  2015-01-31 23:15 ` [Bug symtab/17855] " cvs-commit at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: xdje42 at gmail dot com @ 2015-01-18  4:53 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=17855

            Bug ID: 17855
           Summary: clear_symtab_users doesn't call
                    observer_notify_new_objfile (NULL) early enough
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: symtab
          Assignee: unassigned at sourceware dot org
          Reporter: xdje42 at gmail dot com

I ran into this with my symtab lookup cache patch, PR 17799.

I think the problem can also be seen from ada, which has its own symbol lookup
cache, except one will need to fix PR 17854 first (assuming I'm not missing
something).

diff --git a/gdb/symfile.c b/gdb/symfile.c                                      
index d55e361..ad481de 100644                                                   
--- a/gdb/symfile.c                                                             
+++ b/gdb/symfile.c                                                             
@@ -3023,6 +3023,12 @@ clear_symtab_users (int add_flags)
   /* Someday, we should do better than this, by only blowing away              
      the things that really need to be blown.  */                              

+  /* Notify anyone listening that the previous loaded symtab(s) are invalid.   
+     It is important to do this before calling breakpoint_re_set as the latter 
+     will try to look up symbols, and for example the symbol cache needs to    
+     be flushed first.  */                                                     
+  observer_notify_new_objfile (NULL);                                          
+                                                                               
   /* Clear the "current" symtab first, because it is no longer valid.          
      breakpoint_re_set may try to access the current symtab.  */               
   clear_current_source_symtab_and_line ();                                     
@@ -3032,7 +3038,6 @@ clear_symtab_users (int add_flags)
     breakpoint_re_set ();                                                      
   clear_last_displayed_sal ();                                                 
   clear_pc_function_cache ();                                                  
-  observer_notify_new_objfile (NULL);                                          

   /* Clear globals which might have pointed into a removed objfile.            
      FIXME: It's not clear which of these are supposed to persist

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug symtab/17855] clear_symtab_users doesn't call observer_notify_new_objfile (NULL) early enough
  2015-01-18  4:53 [Bug symtab/17855] New: clear_symtab_users doesn't call observer_notify_new_objfile (NULL) early enough xdje42 at gmail dot com
@ 2015-01-31 23:15 ` cvs-commit at gcc dot gnu.org
  2015-02-04 16:22 ` xdje42 at gmail dot com
  2015-02-23 12:16 ` cvs-commit at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2015-01-31 23:15 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=17855

--- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The gdb-7.9-branch branch has been updated by Doug Evans
<devans@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d4137b858a8b7916668f160a166ee375adcb601b

commit d4137b858a8b7916668f160a166ee375adcb601b
Author: Joel Brobecker <brobecker@adacore.com>
Date:   Sat Jan 31 13:04:51 2015 -0800

    PR symtab/17855

    gdb/ChangeLog:

        PR symtab/17855
        * symfile.c (clear_symtab_users): Move call to breakpoint_re_set
        to end.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug symtab/17855] clear_symtab_users doesn't call observer_notify_new_objfile (NULL) early enough
  2015-01-18  4:53 [Bug symtab/17855] New: clear_symtab_users doesn't call observer_notify_new_objfile (NULL) early enough xdje42 at gmail dot com
  2015-01-31 23:15 ` [Bug symtab/17855] " cvs-commit at gcc dot gnu.org
@ 2015-02-04 16:22 ` xdje42 at gmail dot com
  2015-02-23 12:16 ` cvs-commit at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: xdje42 at gmail dot com @ 2015-02-04 16:22 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=17855

Doug Evans <xdje42 at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Doug Evans <xdje42 at gmail dot com> ---
patches are in trunk and 7.9 branch

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug symtab/17855] clear_symtab_users doesn't call observer_notify_new_objfile (NULL) early enough
  2015-01-18  4:53 [Bug symtab/17855] New: clear_symtab_users doesn't call observer_notify_new_objfile (NULL) early enough xdje42 at gmail dot com
  2015-01-31 23:15 ` [Bug symtab/17855] " cvs-commit at gcc dot gnu.org
  2015-02-04 16:22 ` xdje42 at gmail dot com
@ 2015-02-23 12:16 ` cvs-commit at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2015-02-23 12:16 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=17855

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Doug Evans <devans@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=85c3a371b327377ba1014e8962ba41554599d3e6

commit 85c3a371b327377ba1014e8962ba41554599d3e6
Author: Doug Evans <xdje42@gmail.com>
Date:   Sun Feb 22 09:11:55 2015 -0800

    testcase for PR symtab/17855

    gdb/testsuite/ChangeLog:

        PR symtab/17855
        * gdb.ada/exec_changed.exp: Add second test where symbol lookup cache
        is read after symbols have been re-read.
        * gdb.ada/exec_changed/first.adb (First): New procedure Break_Me.
        * gdb.ada/exec_changed/second.adb (Second): Ditto.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-02-22 17:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-18  4:53 [Bug symtab/17855] New: clear_symtab_users doesn't call observer_notify_new_objfile (NULL) early enough xdje42 at gmail dot com
2015-01-31 23:15 ` [Bug symtab/17855] " cvs-commit at gcc dot gnu.org
2015-02-04 16:22 ` xdje42 at gmail dot com
2015-02-23 12:16 ` cvs-commit at gcc dot gnu.org

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 read-only IMAP folder(s) and NNTP newsgroup(s).