summaryrefslogtreecommitdiff
path: root/gdb/breakpoint.h
diff options
context:
space:
mode:
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>2004-03-24 04:10:01 +0000
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>2004-03-24 04:10:01 +0000
commitbd8469f2d9317347e8b52dde987d672baf98454c (patch)
treea167316f48530cf2d717be4d0dc8314268ab1b8b /gdb/breakpoint.h
parent58d880d7dc46ef22215df77fa468d76cad99a900 (diff)
downloadbinutils-gdb-ezannoni_pie-20040323-branch.tar.gz
2004-03-23 Elena Zannoni <ezannoni@redhat.com>ezannoni_pie-20040323-branch
* solib-svr4.c (svr4_solib_create_inferior_hook): Disable breakpoints at startup. (elf_locate_base): Find out where the entry point for the program is, using the auxv vector, if possible. Compute the address of .dynamic using it. (svr4_current_sos): Don't ignore the first entry if we have PIE, it's our main program. Delete code that was skipping over the solib entry for main executable. * solist.h (struct so_list): Add fields main and main_relocated. (add_to_target_sections): Export. * solib.c (symbol_add_stub): Handle main executable in shared library list. Ignore it if it has been relocated already. Add it as the main symbol file, otherwise. * infrun.c (handle_inferior_event): Re-enable startup breakpoints. * solib-svr4.c (elf_locate_base, first_link_map_member) svr4_current_sos, enable_break): Add debugging output. * solist.h (debug_solib): Export. * solib.c (debug_solib): New variable to enable debugging output. (symbol_add_stub, update_solib_list, update_solib_list) (add_to_target_sections): Add debugging output. (_initialize_solib): Add new comand to enable printing of debugging output. (add_to_target_sections): New function. Factored out from update_solib_list. (update_solib_list): Call add_to_target_sections. * varobj.h (varobj_refresh): New prototype. * varobj.c (varobj_refresh): New function. * symfile.c (reread_symbols): Make sure that we recompute the entry point for the program. (symbol_file_clear): Clear the solibs as well, if we change symbol files. (clear_symtab_users): Refresh the varobjs that depend on the symtabs we are clearing. * objfiles.c (entry_point_address): Rewrite, to fetch entry point from auxv vector, if possible. Add include of elf/common.h. * breakpoint.h (enum bptype): Add bp type bp_startup_disabled. (re_enable_breakpoints_at_startup) (disable_breakpoints_at_startup): Add prototypes * breakpoint.c (re_enable_breakpoints_at_startup) (disable_breakpoints_at_startup): New functions. (describe_other_breakpoints, delete_breakpoint) (breakpoint_re_set_one): Handle new bp type. * auxv.h (target_auxv_parse, target_auxv_search): Update. * auxv.c (target_auxv_parse, target_auxv_search) (fprint_target_auxv): Use ULONGEST instead of CORE_ADDR for variable. Change variable name to at_type.
Diffstat (limited to 'gdb/breakpoint.h')
-rw-r--r--gdb/breakpoint.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 41bcb0c3ce1..badba3cfeaf 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -159,6 +159,7 @@ enum enable_state
automatically enabled and reset when the call
"lands" (either completes, or stops at another
eventpoint). */
+ bp_startup_disabled,
bp_permanent /* There is a breakpoint instruction hard-wired into
the target's code. Don't try to write another
breakpoint instruction on top of it, or restore
@@ -771,8 +772,12 @@ extern void remove_thread_event_breakpoints (void);
extern void disable_breakpoints_in_shlibs (int silent);
+extern void disable_breakpoints_at_startup (int silent);
+
extern void re_enable_breakpoints_in_shlibs (void);
+void re_enable_breakpoints_at_startup (void);
+
extern void create_solib_load_event_breakpoint (char *, int, char *, char *);
extern void create_solib_unload_event_breakpoint (char *, int,