diff options
author | Joseph Myers <jsm@polyomino.org.uk> | 2009-12-01 22:46:07 +0000 |
---|---|---|
committer | Joseph Myers <jsm@polyomino.org.uk> | 2009-12-01 22:46:07 +0000 |
commit | 575d4a276cceae9dca086aced83dece6146a5fe6 (patch) | |
tree | d0ce1987be8a7da2084190ba01466ff6f4adfbae /gdb/solib.c | |
parent | 9104dec90808466c32a1ad779f5a5f245f37c0aa (diff) | |
download | gdb-575d4a276cceae9dca086aced83dece6146a5fe6.tar.gz |
* gcore.c: Include solib.h.
(gcore_create_callback): Call solib_keep_data_in_core when
considering not saving memory in core file.
* solib-svr4.c (svr4_keep_data_in_core): New.
(_initialize_svr4_solib): Initialize
svr4_so_ops.keep_data_in_core.
* solib.c (solib_keep_data_in_core): New.
* solib.h (solib_keep_data_in_core): Declare.
* solist.h (struct target_so_ops): Add keep_data_in_core.
Diffstat (limited to 'gdb/solib.c')
-rw-r--r-- | gdb/solib.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/solib.c b/gdb/solib.c index 6ad22fed2d5..e563512a991 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -948,6 +948,23 @@ solib_name_from_address (struct program_space *pspace, CORE_ADDR address) return (0); } +/* Return whether the data starting at VADDR, size SIZE, must be kept + in a core file for shared libraries loaded before "gcore" is used + to be handled correctly when the core file is loaded. This only + applies when the section would otherwise not be kept in the core + file (in particular, for readonly sections). */ + +int +solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size) +{ + struct target_so_ops *ops = solib_ops (target_gdbarch); + + if (ops->keep_data_in_core) + return ops->keep_data_in_core (vaddr, size); + else + return 0; +} + /* Called by free_all_symtabs */ void |