2003-11-25 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Tue, 25 Nov 2003 16:01:36 +0000 (16:01 +0000)
committerAndrew Cagney <cagney@redhat.com>
Tue, 25 Nov 2003 16:01:36 +0000 (16:01 +0000)
* infrun.c: Don't include "exec.h".
(handle_inferior_event): Pass current_target, instead of exec_ops,
to SOLIB_ADD.  Add comments.
* Makefile.in (infrun.o): Update dependencies.

gdb/ChangeLog
gdb/Makefile.in
gdb/infrun.c

index bf42fe0c151830fe92bcf9b6e1c6432c555d5704..79a4df9638ae2034df56832ea18e363f1bdb93e7 100644 (file)
@@ -1,3 +1,10 @@
+2003-11-25  Andrew Cagney  <cagney@redhat.com>
+
+       * infrun.c: Don't include "exec.h".
+       (handle_inferior_event): Pass current_target, instead of exec_ops,
+       to SOLIB_ADD.  Add comments.
+       * Makefile.in (infrun.o): Update dependencies.
+
 2003-11-24  Daniel Jacobowitz  <drow@mvista.com>
 
        * NEWS: Mention improved location expression support.
index 70f3abdc123d418487c1eba81a07882c7f476a12..e281f3bcb1759a2e5e4c8fc12640d52198a2e103 100644 (file)
@@ -1936,7 +1936,7 @@ infrun.o: infrun.c $(defs_h) $(gdb_string_h) $(symtab_h) $(frame_h) \
        $(inferior_h) $(breakpoint_h) $(gdb_wait_h) $(gdbcore_h) $(gdbcmd_h) \
        $(cli_script_h) $(target_h) $(gdbthread_h) $(annotate_h) \
        $(symfile_h) $(top_h) $(inf_loop_h) $(regcache_h) $(value_h) \
-       $(observer_h) $(language_h) $(exec_h)
+       $(observer_h) $(language_h)
 inftarg.o: inftarg.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) \
        $(gdbcore_h) $(command_h) $(gdb_stat_h) $(gdb_wait_h) $(inflow_h)
 infttrace.o: infttrace.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) \
index 0b85cc691c1643b9acb12d10c1bfc32ace434654..b16cc62091f5574d70ec1994b03770d1a0e34fef 100644 (file)
@@ -44,7 +44,6 @@
 #include "value.h"
 #include "observer.h"
 #include "language.h"
-#include "exec.h"
 
 /* Prototypes for local functions */
 
@@ -1363,7 +1362,22 @@ handle_inferior_event (struct execution_control_state *ecs)
             terminal for any messages produced by
             breakpoint_re_set.  */
          target_terminal_ours_for_output ();
-         SOLIB_ADD (NULL, 0, &exec_ops, auto_solib_add);
+         /* NOTE: cagney/2003-11-25: Make certain that the target
+             stack's section table is kept up-to-date.  Architectures,
+             (e.g., PPC64), use the section table to perform
+             operations such as address => section name and hence
+             require the table to contain all sections (including
+             those found in shared libraries).  */
+         /* NOTE: cagney/2003-11-25: Pass current_target and not
+             exec_ops to SOLIB_ADD.  This is because current GDB is
+             only tooled to propagate section_table changes out from
+             the "current_target" (see target_resize_to_sections), and
+             not up from the exec stratum.  This, of course, isn't
+             right.  "infrun.c" should only interact with the
+             exec/process stratum, instead relying on the target stack
+             to propagate relevant changes (stop, section table
+             changed, ...) up to other layers.  */
+         SOLIB_ADD (NULL, 0, &current_target, auto_solib_add);
          target_terminal_inferior ();
 
          /* Reinsert breakpoints and continue.  */
@@ -2186,7 +2200,22 @@ process_event_stop_test:
             terminal for any messages produced by
             breakpoint_re_set.  */
          target_terminal_ours_for_output ();
-         SOLIB_ADD (NULL, 0, &exec_ops, auto_solib_add);
+         /* NOTE: cagney/2003-11-25: Make certain that the target
+             stack's section table is kept up-to-date.  Architectures,
+             (e.g., PPC64), use the section table to perform
+             operations such as address => section name and hence
+             require the table to contain all sections (including
+             those found in shared libraries).  */
+         /* NOTE: cagney/2003-11-25: Pass current_target and not
+             exec_ops to SOLIB_ADD.  This is because current GDB is
+             only tooled to propagate section_table changes out from
+             the "current_target" (see target_resize_to_sections), and
+             not up from the exec stratum.  This, of course, isn't
+             right.  "infrun.c" should only interact with the
+             exec/process stratum, instead relying on the target stack
+             to propagate relevant changes (stop, section table
+             changed, ...) up to other layers.  */
+         SOLIB_ADD (NULL, 0, &current_target, auto_solib_add);
          target_terminal_inferior ();
 
          /* Try to reenable shared library breakpoints, additional