diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-07-02 22:01:09 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-07-02 22:01:09 +0000 |
commit | cfa9d6d99135b1d59ecf0756247305cc24869549 (patch) | |
tree | f8d53c87058ca989e80893150b5309c782bc3870 /gdb/solib.c | |
parent | b0f4b84b5c44685c7880e9e3e013314590662a17 (diff) | |
download | gdb-cfa9d6d99135b1d59ecf0756247305cc24869549.zip gdb-cfa9d6d99135b1d59ecf0756247305cc24869549.tar.gz gdb-cfa9d6d99135b1d59ecf0756247305cc24869549.tar.bz2 |
* Makefile.in (XMLFILES): Add library-list.dtd.
(ALLDEPFILES): Add solib-target.o.
(solib-target.o): New rule.
* remote.c (PACKET_qXfer_libraries): New constant.
(remote_protocol_features): Add qXfer:libraries:read.
(remote_wait): Recognize library stop replies.
(remote_async_wait): Likewise. Fix typo.
(remote_xfer_partial): Handle TARGET_OBJECT_LIBRARIES.
(init_remote_async_ops): Fix typo.
(_initialize_remote): Register "set remote library-info-packet".
* solib-som.c (som_current_sos): Set addr_low and addr_high.
* solib-target.c: New file.
* solib.c (solib_map_sections): Use addr_low and addr_high instead
of textsection.
(info_sharedlibrary_command): Likewise.
(solib_add_library, solib_remove_library): New.
* solist.h (struct so_list): Replace textsection with addr_low and
addr_high.
* target.h (enum target_object): Add TARGET_OBJECT_LIBRARIES.
* NEWS: Describe new qXfer:libraries:read and shared library
event support.
* features/library-list.dtd: New.
* gdb.texinfo (Remote Configuration): Document library-info-packet.
Add other missing entries. Adjust the table size to fit.
(Stop Reply Packets): Use @itemize instead of @enumerate. Document
stop reasons including the new "library" event.
(General Query Packets): Adjust table widths for qSupported. Mention
qXfer:libraries:read reply to qSupported and document the new packet.
(Library List Format): New section.
Diffstat (limited to 'gdb/solib.c')
-rw-r--r-- | gdb/solib.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/gdb/solib.c b/gdb/solib.c index 4cdb3a5..f48b0a2 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -316,9 +316,15 @@ solib_map_sections (void *arg) object's file by the base address to which the object was actually mapped. */ ops->relocate_section_addresses (so, p); - if (strcmp (p->the_bfd_section->name, ".text") == 0) + + /* If the target didn't provide information about the address + range of the shared object, assume we want the location of + the .text section. */ + if (so->addr_low == 0 && so->addr_high == 0 + && strcmp (p->the_bfd_section->name, ".text") == 0) { - so->textsection = p; + so->addr_low = p->addr; + so->addr_high = p->endaddr; } } @@ -742,15 +748,15 @@ info_sharedlibrary_command (char *ignore, int from_tty) } printf_unfiltered ("%-*s", addr_width, - so->textsection != NULL + so->addr_high != 0 ? hex_string_custom ( - (LONGEST) so->textsection->addr, + (LONGEST) so->addr_low, addr_width - 4) : ""); printf_unfiltered ("%-*s", addr_width, - so->textsection != NULL + so->addr_high != 0 ? hex_string_custom ( - (LONGEST) so->textsection->endaddr, + (LONGEST) so->addr_high, addr_width - 4) : ""); printf_unfiltered ("%-12s", so->symbols_loaded ? "Yes" : "No"); |