convert to internal format, for GDB. Used as a last resort if no
debugging symbols recognized.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2021 Free Software Foundation, Inc.
This file is part of GDB.
#include "symtab.h"
#include "symfile.h"
#include "objfiles.h"
-#include "common/common-utils.h"
+#include "gdbsupport/common-utils.h"
#include "coff/internal.h"
#include <ctype.h>
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;
+ = bfd_section_vma (sectp) - sections[sectix].rva_start;
}
}
\f
vma = BMSYMBOL_VALUE_ADDRESS (msymbol);
msymtype = MSYMBOL_TYPE (msymbol.minsym);
- section = MSYMBOL_SECTION (msymbol.minsym);
+ section = msymbol.minsym->section_index ();
/* Generate a (hopefully unique) qualified name using the first part
of the dll name, e.g. KERNEL32!AddAtomA. This matches the style
really be relocated properly, but nevertheless we make a stab at
it, choosing an approach consistent with the history of this
code. */
- baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
+ baseaddr = objfile->text_section_offset ();
reader.record_with_info (qualified_name.c_str (), vma - baseaddr, msymtype,
section);
unsigned long exp_funcbase;
unsigned char *expdata, *erva;
unsigned long name_rvas, ordinals, nexp, ordbase;
- char *dll_name = (char *) dll->filename;
+ char *dll_name = (char *) bfd_get_filename (dll);
int otherix = PE_SECTION_TABLE_SIZE;
int is_pe64 = 0;
int is_pe32 = 0;
}
}
+ if (expptr == 0)
+ {
+ /* no section contains export table rva */
+ return;
+ }
+
export_rva = export_opthdrrva;
export_size = export_opthdrsize;
/* Pointer to the function address vector. */
- /* This is relatived to ordinal value. */
+ /* This is relative to ordinal value. */
unsigned long func_rva = pe_as32 (erva + exp_funcbase +
- ordinal * 4);
+ ordinal * 4);
/* Find this symbol's section in our own array. */
int sectix = 0;
/* Extract from ABFD the offset of the .text section.
This offset is mainly related to the offset within the file.
The value was previously expected to be 0x1000 for all files,
- but some Windows OS core DLLs seem to use 0x10000 section alignement
+ but some Windows OS core DLLs seem to use 0x10000 section alignment
which modified the return value of that function.
Still return default 0x1000 value if ABFD is NULL or
if '.text' section is not found, but that should not happen... */
/* Adds "Set/show debug coff_pe_read" commands. */
+void _initialize_coff_pe_read ();
void
-_initialize_coff_pe_read (void)
+_initialize_coff_pe_read ()
{
add_setshow_zuinteger_cmd ("coff-pe-read", class_maintenance,
&debug_coff_pe_read,