diff options
Diffstat (limited to 'gdb/solib-pa64.c')
-rw-r--r-- | gdb/solib-pa64.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/gdb/solib-pa64.c b/gdb/solib-pa64.c index c26fc62..f7d7b6f 100644 --- a/gdb/solib-pa64.c +++ b/gdb/solib-pa64.c @@ -16,9 +16,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - - HP in their infinite stupidity choose not to use standard ELF dynamic + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* HP in their infinite stupidity choose not to use standard ELF dynamic linker interfaces. They also choose not to make their ELF dymamic linker interfaces compatible with the SOM dynamic linker. The net result is we can not use either of the existing somsolib.c or @@ -60,7 +60,7 @@ struct lm_info { CORE_ADDR desc_addr; }; -/* When adding fields, be sure to clear them in _initialize_pa64_solib. */ +/* When adding fields, be sure to clear them in _initialize_pa64_solib. */ typedef struct { CORE_ADDR dld_flags_addr; @@ -166,7 +166,7 @@ read_dld_descriptor (void) if (!dld_cache.load_map) return 0; - /* Read in the dld load module descriptor */ + /* Read in the dld load module descriptor. */ if (dlgetmodinfo (-1, &dld_cache.dld_desc, sizeof (dld_cache.dld_desc), @@ -206,7 +206,7 @@ read_dynamic_info (asection *dyninfo_sect, dld_cache_t *dld_cache_p) return 0; /* Scan the .dynamic section and record the items of interest. - In particular, DT_HP_DLD_FLAGS */ + In particular, DT_HP_DLD_FLAGS. */ for (bufend = buf + dyninfo_sect_size, entry_addr = dyninfo_addr; buf < bufend; buf += sizeof (Elf64_Dyn), entry_addr += sizeof (Elf64_Dyn)) @@ -224,7 +224,7 @@ read_dynamic_info (asection *dyninfo_sect, dld_cache_t *dld_cache_p) break; else if (dyn_tag == DT_HP_DLD_FLAGS) { - /* Set dld_flags_addr and dld_flags in *dld_cache_p */ + /* Set dld_flags_addr and dld_flags in *dld_cache_p. */ dld_cache_p->dld_flags_addr = entry_addr + offsetof(Elf64_Dyn, d_un); if (target_read_memory (dld_cache_p->dld_flags_addr, (char*) &dld_cache_p->dld_flags, @@ -251,11 +251,11 @@ read_dynamic_info (asection *dyninfo_sect, dld_cache_t *dld_cache_p) } else { - /* tag is not of interest */ + /* Tag is not of interest. */ } } - /* Record other information and set is_valid to 1. */ + /* Record other information and set is_valid to 1. */ dld_cache_p->dyninfo_sect = dyninfo_sect; /* Verify that we read in required info. These fields are re-set to zero @@ -269,8 +269,7 @@ read_dynamic_info (asection *dyninfo_sect, dld_cache_t *dld_cache_p) return 1; } -/* - bfd_lookup_symbol -- lookup the value for a specific symbol +/* bfd_lookup_symbol -- lookup the value for a specific symbol An expensive way to lookup the value of a single symbol for bfd's that are only temporary anyway. This is used by the @@ -278,8 +277,7 @@ read_dynamic_info (asection *dyninfo_sect, dld_cache_t *dld_cache_p) interface structures in the shared library. Note that 0 is specifically allowed as an error return (no - such symbol). - */ + such symbol). */ static CORE_ADDR bfd_lookup_symbol (bfd *abfd, char *symname) @@ -305,7 +303,7 @@ bfd_lookup_symbol (bfd *abfd, char *symname) sym = *symbol_table++; if (strcmp (sym->name, symname) == 0) { - /* Bfd symbols are section relative. */ + /* Bfd symbols are section relative. */ symaddr = sym->value + sym->section->vma; break; } @@ -417,7 +415,7 @@ manpage for methods to privately map shared library text.")); /* We find the dynamic linker's base address by examining the current pc (which point at the entry point for the dynamic - linker) and subtracting the offset of the entry point. + linker) and subtracting the offset of the entry point. Also note the breakpoint is the second instruction in the routine. */ @@ -629,7 +627,7 @@ pa64_solib_get_solib_by_pc (CORE_ADDR addr) return retval; } -/* pa64 libraries do not seem to set the section offsets in a standard (i.e. +/* pa64 libraries do not seem to set the section offsets in a standard (i.e. SVr4) way; the text section offset stored in the file doesn't correspond to the place where the library is actually loaded into memory. Instead, we rely on the dll descriptor to tell us where things were loaded. */ |