diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/Makefile.in | 2 | ||||
-rw-r--r-- | gdb/infrun.c | 35 |
3 files changed, 40 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bf42fe0..79a4df9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 70f3abd..e281f3b 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -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) \ diff --git a/gdb/infrun.c b/gdb/infrun.c index 0b85cc6..b16cc62 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -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, ¤t_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, ¤t_target, auto_solib_add); target_terminal_inferior (); /* Try to reenable shared library breakpoints, additional |