From b427c1bc161e6e0dcbce0c27b385b3ecb9c47552 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 15 Jan 2014 09:40:13 -0700 Subject: [PATCH] remove exec_set_find_memory_regions exec_set_find_memory_regions is used to modify the exec target. However, it only has a single caller, and so it is much clearer to simply set the appropriate field directly. It's also better for the coming multi-target world to avoid this kind of global state change anyway. 2014-02-19 Tom Tromey * gcore.h (objfile_find_memory_regions): Declare. * gcore.c (objfile_find_memory_regions): No longer static. Add "self" argument. (_initialize_gcore): Don't call exec_set_find_memory_regions. * exec.c: Include gcore.h. (exec_set_find_memory_regions): Remove. (exec_find_memory_regions): Remove. (exec_do_find_memory_regions): Remove. (init_exec_ops): Update. * defs.h (exec_set_find_memory_regions): Remove. --- gdb/ChangeLog | 13 +++++++++++++ gdb/defs.h | 4 ---- gdb/exec.c | 22 ++-------------------- gdb/gcore.c | 6 +++--- gdb/gcore.h | 3 +++ 5 files changed, 21 insertions(+), 27 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7496e3b201b..d7275aac3ea 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,16 @@ +2014-02-19 Tom Tromey + + * gcore.h (objfile_find_memory_regions): Declare. + * gcore.c (objfile_find_memory_regions): No longer static. Add + "self" argument. + (_initialize_gcore): Don't call exec_set_find_memory_regions. + * exec.c: Include gcore.h. + (exec_set_find_memory_regions): Remove. + (exec_find_memory_regions): Remove. + (exec_do_find_memory_regions): Remove. + (init_exec_ops): Update. + * defs.h (exec_set_find_memory_regions): Remove. + 2014-02-19 Tom Tromey * target-delegates.c: Rebuild. diff --git a/gdb/defs.h b/gdb/defs.h index a9669cf059d..1753dfa73b1 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -368,10 +368,6 @@ typedef int (*find_memory_region_ftype) (CORE_ADDR addr, unsigned long size, int read, int write, int exec, int modified, void *data); -/* Take over the 'find_mapped_memory' vector from exec.c. */ -extern void exec_set_find_memory_regions - (int (*func) (find_memory_region_ftype func, void *data)); - /* Possible lvalue types. Like enum language, this should be in value.h, but needs to be here for the same reason. */ diff --git a/gdb/exec.c b/gdb/exec.c index 61dea49e2d9..7f53a507769 100644 --- a/gdb/exec.c +++ b/gdb/exec.c @@ -34,6 +34,7 @@ #include "gdbthread.h" #include "progspace.h" #include "gdb_bfd.h" +#include "gcore.h" #include #include "readline/readline.h" @@ -62,10 +63,6 @@ void _initialize_exec (void); struct target_ops exec_ops; -/* Function used to implement to_find_memory_regions. */ - -static int (*exec_do_find_memory_regions) (find_memory_region_ftype, void *); - /* True if the exec target is pushed on the stack. */ static int using_exec_ops; @@ -834,21 +831,6 @@ exec_has_memory (struct target_ops *ops) != current_target_sections->sections_end); } -/* Find mapped memory. */ - -extern void -exec_set_find_memory_regions (int (*func) (find_memory_region_ftype, void *)) -{ - exec_do_find_memory_regions = func; -} - -static int -exec_find_memory_regions (struct target_ops *self, - find_memory_region_ftype func, void *data) -{ - return exec_do_find_memory_regions (func, data); -} - static char *exec_make_note_section (struct target_ops *self, bfd *, int *); /* Fill in the exec file target vector. Very few entries need to be @@ -873,7 +855,7 @@ Specify the filename of the executable file."; exec_ops.to_stratum = file_stratum; exec_ops.to_has_memory = exec_has_memory; exec_ops.to_make_corefile_notes = exec_make_note_section; - exec_ops.to_find_memory_regions = exec_find_memory_regions; + exec_ops.to_find_memory_regions = objfile_find_memory_regions; exec_ops.to_magic = OPS_MAGIC; } diff --git a/gdb/gcore.c b/gdb/gcore.c index 67fbf302c4b..b80a97b5a5d 100644 --- a/gdb/gcore.c +++ b/gdb/gcore.c @@ -471,8 +471,9 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, int read, return 0; } -static int -objfile_find_memory_regions (find_memory_region_ftype func, void *obfd) +int +objfile_find_memory_regions (struct target_ops *self, + find_memory_region_ftype func, void *obfd) { /* Use objfile data to create memory sections. */ struct objfile *objfile; @@ -607,5 +608,4 @@ Save a core file with the current state of the debugged process.\n\ Argument is optional filename. Default filename is 'core.'.")); add_com_alias ("gcore", "generate-core-file", class_files, 1); - exec_set_find_memory_regions (objfile_find_memory_regions); } diff --git a/gdb/gcore.h b/gdb/gcore.h index fa642112eaa..7a6271b61ba 100644 --- a/gdb/gcore.h +++ b/gdb/gcore.h @@ -23,5 +23,8 @@ extern bfd *create_gcore_bfd (const char *filename); extern void write_gcore_file (bfd *obfd); extern bfd *load_corefile (char *filename, int from_tty); +extern int objfile_find_memory_regions (struct target_ops *self, + find_memory_region_ftype func, + void *obfd); #endif /* GCORE_H */ -- 2.30.2