diff options
Diffstat (limited to 'gdb/coff-pe-read.c')
-rw-r--r-- | gdb/coff-pe-read.c | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/gdb/coff-pe-read.c b/gdb/coff-pe-read.c index 3e2b89c..7dbfb2a 100644 --- a/gdb/coff-pe-read.c +++ b/gdb/coff-pe-read.c @@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. - Contributed by Raoul M. Gough (RaoulGough@yahoo.co.uk). */ + Contributed by Raoul M. Gough (RaoulGough@yahoo.co.uk). */ #include "coff-pe-read.h" @@ -36,10 +36,11 @@ struct read_pe_section_data { - CORE_ADDR vma_offset; /* Offset to loaded address of section. */ - unsigned long rva_start; /* Start offset within the pe. */ - unsigned long rva_end; /* End offset within the pe. */ - enum minimal_symbol_type ms_type; /* Type to assign symbols in section. */ + CORE_ADDR vma_offset; /* Offset to loaded address of section. */ + unsigned long rva_start; /* Start offset within the pe. */ + unsigned long rva_end; /* End offset within the pe. */ + enum minimal_symbol_type ms_type; /* Type to assign symbols in + section. */ }; #define PE_SECTION_INDEX_TEXT 0 @@ -49,8 +50,8 @@ struct read_pe_section_data #define PE_SECTION_INDEX_INVALID -1 /* Get the index of the named section in our own array, which contains - text, data and bss in that order. Return PE_SECTION_INDEX_INVALID - if passed an unrecognised section name. */ + text, data and bss in that order. Return PE_SECTION_INDEX_INVALID + if passed an unrecognised section name. */ static int read_pe_section_index (const char *section_name) @@ -76,7 +77,7 @@ read_pe_section_index (const char *section_name) } } -/* Record the virtual memory address of a section. */ +/* Record the virtual memory address of a section. */ static void get_section_vmas (bfd *abfd, asection *sectp, void *context) @@ -87,14 +88,14 @@ get_section_vmas (bfd *abfd, asection *sectp, void *context) if (sectix != PE_SECTION_INDEX_INVALID) { /* Data within the section start at rva_start in the pe and at - bfd_get_section_vma() within memory. Store the offset. */ + bfd_get_section_vma() within memory. Store the offset. */ sections[sectix].vma_offset = bfd_get_section_vma (abfd, sectp) - sections[sectix].rva_start; } } -/* Create a minimal symbol entry for an exported symbol. */ +/* Create a minimal symbol entry for an exported symbol. */ static void add_pe_exported_sym (char *sym_name, @@ -102,7 +103,7 @@ add_pe_exported_sym (char *sym_name, const struct read_pe_section_data *section_data, const char *dll_name, struct objfile *objfile) { - /* Add the stored offset to get the loaded address of the symbol. */ + /* Add the stored offset to get the loaded address of the symbol. */ CORE_ADDR vma = func_rva + section_data->vma_offset; @@ -110,8 +111,8 @@ add_pe_exported_sym (char *sym_name, int dll_name_len = strlen (dll_name); /* Generate a (hopefully unique) qualified name using the first part - of the dll name, e.g. KERNEL32!AddAtomA. This matches the style - used by windbg from the "Microsoft Debugging Tools for Windows". */ + of the dll name, e.g. KERNEL32!AddAtomA. This matches the style + used by windbg from the "Microsoft Debugging Tools for Windows". */ qualified_name = xmalloc (dll_name_len + strlen (sym_name) + 2); @@ -124,11 +125,12 @@ add_pe_exported_sym (char *sym_name, xfree (qualified_name); - /* Enter the plain name as well, which might not be unique. */ - prim_record_minimal_symbol (sym_name, vma, section_data->ms_type, objfile); + /* Enter the plain name as well, which might not be unique. */ + prim_record_minimal_symbol (sym_name, vma, + section_data->ms_type, objfile); } -/* Truncate a dll_name at the first dot character. */ +/* Truncate a dll_name at the first dot character. */ static void read_pe_truncate_name (char *dll_name) @@ -137,7 +139,7 @@ read_pe_truncate_name (char *dll_name) { if ((*dll_name) == '.') { - *dll_name = '\0'; /* truncates and causes loop exit. */ + *dll_name = '\0'; /* truncates and causes loop exit. */ } else @@ -147,7 +149,7 @@ read_pe_truncate_name (char *dll_name) } } -/* Low-level support functions, direct from the ld module pe-dll.c. */ +/* Low-level support functions, direct from the ld module pe-dll.c. */ static unsigned int pe_get16 (bfd *abfd, int where) { @@ -177,8 +179,8 @@ pe_as32 (void *ptr) } /* Read the (non-debug) export symbol table from a portable - executable. Code originally lifted from the ld function - pe_implied_import_dll in pe-dll.c. */ + executable. Code originally lifted from the ld function + pe_implied_import_dll in pe-dll.c. */ void read_pe_exported_syms (struct objfile *objfile) @@ -195,7 +197,7 @@ read_pe_exported_syms (struct objfile *objfile) /* Array elements are for text, data and bss in that order Initialization with start_rva > end_rva guarantees that - unused sections won't be matched. */ + unused sections won't be matched. */ struct read_pe_section_data section_data[PE_SECTION_TABLE_SIZE] = { {0, 1, 0, mst_text}, {0, 1, 0, mst_data}, @@ -217,7 +219,7 @@ read_pe_exported_syms (struct objfile *objfile) { /* This is not a recognized PE format file. Abort now, because the code is untested on anything else. *FIXME* test on - further architectures and loosen or remove this test. */ + further architectures and loosen or remove this test. */ return; } @@ -272,11 +274,12 @@ read_pe_exported_syms (struct objfile *objfile) if (export_size == 0) { - /* Empty export table. */ + /* Empty export table. */ return; } - /* Scan sections and store the base and size of the relevant sections. */ + /* Scan sections and store the base and size of the relevant + sections. */ for (i = 0; i < nsections; i++) { unsigned long secptr1 = secptr + 40 * i; @@ -311,14 +314,14 @@ read_pe_exported_syms (struct objfile *objfile) ordbase = pe_as32 (expdata + 16); exp_funcbase = pe_as32 (expdata + 28); - /* Use internal dll name instead of full pathname. */ + /* Use internal dll name instead of full pathname. */ dll_name = pe_as32 (expdata + 12) + erva; bfd_map_over_sections (dll, get_section_vmas, section_data); /* Adjust the vma_offsets in case this PE got relocated. This assumes that *all* sections share the same relocation offset - as the text section. */ + as the text section. */ for (i = 0; i < PE_SECTION_TABLE_SIZE; i++) { section_data[i].vma_offset @@ -326,7 +329,7 @@ read_pe_exported_syms (struct objfile *objfile) } /* Truncate name at first dot. Should maybe also convert to all - lower case for convenience on Windows. */ + lower case for convenience on Windows. */ read_pe_truncate_name (dll_name); /* Iterate through the list of symbols. */ @@ -338,7 +341,7 @@ read_pe_exported_syms (struct objfile *objfile) /* Pointer to the function address vector. */ unsigned long func_rva = pe_as32 (erva + exp_funcbase + i * 4); - /* Find this symbol's section in our own array. */ + /* Find this symbol's section in our own array. */ int sectix = 0; for (sectix = 0; sectix < PE_SECTION_TABLE_SIZE; ++sectix) @@ -354,6 +357,6 @@ read_pe_exported_syms (struct objfile *objfile) } } - /* discard expdata. */ + /* Discard expdata. */ do_cleanups (back_to); } |