GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
coff-pe-read.c File Reference
#include "defs.h"
#include "coff-pe-read.h"
#include "bfd.h"
#include "gdbtypes.h"
#include "command.h"
#include "gdbcmd.h"
#include "symtab.h"
#include "symfile.h"
#include "objfiles.h"
#include "gdbsupport/common-utils.h"
#include "coff/internal.h"
#include <ctype.h>

Go to the source code of this file.

Classes

struct  read_pe_section_data
 

Macros

#define IMAGE_SCN_CNT_CODE   0x20
 
#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x40
 
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA   0x80
 
#define PE_SECTION_INDEX_TEXT   0
 
#define PE_SECTION_INDEX_DATA   1
 
#define PE_SECTION_INDEX_BSS   2
 
#define PE_SECTION_TABLE_SIZE   3
 
#define PE_SECTION_INDEX_INVALID   -1
 
#define DEFAULT_COFF_PE_TEXT_SECTION_OFFSET   0x1000
 

Functions

static int read_pe_section_index (const char *section_name)
 
static int get_pe_section_index (const char *section_name, const std::vector< read_pe_section_data > &sections)
 
static void add_pe_exported_sym (minimal_symbol_reader &reader, const char *sym_name, unsigned long func_rva, int ordinal, const struct read_pe_section_data *section_data, const char *dll_name, struct objfile *objfile)
 
static int add_pe_forwarded_sym (minimal_symbol_reader &reader, const char *sym_name, const char *forward_dll_name, const char *forward_func_name, int ordinal, const char *dll_name, struct objfile *objfile)
 
static void read_pe_truncate_name (char *dll_name)
 
static unsigned int pe_get16 (bfd *abfd, int where, bool *fail)
 
static unsigned int pe_get32 (bfd *abfd, int where, bool *fail)
 
static unsigned int pe_as16 (void *ptr)
 
static unsigned int pe_as32 (void *ptr)
 
void read_pe_exported_syms (minimal_symbol_reader &reader, struct objfile *objfile)
 
CORE_ADDR pe_text_section_offset (struct bfd *abfd)
 
static void show_debug_coff_pe_read (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
void _initialize_coff_pe_read ()
 

Variables

static unsigned int debug_coff_pe_read
 

Macro Definition Documentation

◆ DEFAULT_COFF_PE_TEXT_SECTION_OFFSET

#define DEFAULT_COFF_PE_TEXT_SECTION_OFFSET   0x1000

Definition at line 620 of file coff-pe-read.c.

Referenced by pe_text_section_offset().

◆ IMAGE_SCN_CNT_CODE

#define IMAGE_SCN_CNT_CODE   0x20

Definition at line 60 of file coff-pe-read.c.

Referenced by read_pe_exported_syms().

◆ IMAGE_SCN_CNT_INITIALIZED_DATA

#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x40

Definition at line 61 of file coff-pe-read.c.

Referenced by read_pe_exported_syms().

◆ IMAGE_SCN_CNT_UNINITIALIZED_DATA

#define IMAGE_SCN_CNT_UNINITIALIZED_DATA   0x80

Definition at line 62 of file coff-pe-read.c.

Referenced by read_pe_exported_syms().

◆ PE_SECTION_INDEX_BSS

#define PE_SECTION_INDEX_BSS   2

Definition at line 65 of file coff-pe-read.c.

Referenced by read_pe_exported_syms(), and read_pe_section_index().

◆ PE_SECTION_INDEX_DATA

#define PE_SECTION_INDEX_DATA   1

Definition at line 64 of file coff-pe-read.c.

Referenced by read_pe_exported_syms(), and read_pe_section_index().

◆ PE_SECTION_INDEX_INVALID

#define PE_SECTION_INDEX_INVALID   -1

◆ PE_SECTION_INDEX_TEXT

#define PE_SECTION_INDEX_TEXT   0

Definition at line 63 of file coff-pe-read.c.

Referenced by read_pe_exported_syms(), and read_pe_section_index().

◆ PE_SECTION_TABLE_SIZE

#define PE_SECTION_TABLE_SIZE   3

Definition at line 66 of file coff-pe-read.c.

Referenced by read_pe_exported_syms().

Function Documentation

◆ _initialize_coff_pe_read()

void _initialize_coff_pe_read ( )

Definition at line 697 of file coff-pe-read.c.

Referenced by initialize_all_files().

◆ add_pe_exported_sym()

static void add_pe_exported_sym ( minimal_symbol_reader & reader,
const char * sym_name,
unsigned long func_rva,
int ordinal,
const struct read_pe_section_data * section_data,
const char * dll_name,
struct objfile * objfile )
static

◆ add_pe_forwarded_sym()

static int add_pe_forwarded_sym ( minimal_symbol_reader & reader,
const char * sym_name,
const char * forward_dll_name,
const char * forward_func_name,
int ordinal,
const char * dll_name,
struct objfile * objfile )
static

◆ get_pe_section_index()

static int get_pe_section_index ( const char * section_name,
const std::vector< read_pe_section_data > & sections )
static

Definition at line 102 of file coff-pe-read.c.

References PE_SECTION_INDEX_INVALID.

Referenced by read_pe_exported_syms().

◆ pe_as16()

static unsigned int pe_as16 ( void * ptr)
static

Definition at line 285 of file coff-pe-read.c.

Referenced by read_pe_exported_syms().

◆ pe_as32()

static unsigned int pe_as32 ( void * ptr)
static

Definition at line 293 of file coff-pe-read.c.

Referenced by read_pe_exported_syms().

◆ pe_get16()

static unsigned int pe_get16 ( bfd * abfd,
int where,
bool * fail )
static

Definition at line 257 of file coff-pe-read.c.

References SEEK_SET.

Referenced by pe_text_section_offset(), and read_pe_exported_syms().

◆ pe_get32()

static unsigned int pe_get32 ( bfd * abfd,
int where,
bool * fail )
static

Definition at line 271 of file coff-pe-read.c.

References SEEK_SET.

Referenced by pe_text_section_offset(), and read_pe_exported_syms().

◆ pe_text_section_offset()

CORE_ADDR pe_text_section_offset ( struct bfd * abfd)

◆ read_pe_exported_syms()

void read_pe_exported_syms ( minimal_symbol_reader & reader,
struct objfile * objfile )

◆ read_pe_section_index()

static int read_pe_section_index ( const char * section_name)
static

◆ read_pe_truncate_name()

static void read_pe_truncate_name ( char * dll_name)
static

Definition at line 247 of file coff-pe-read.c.

Referenced by read_pe_exported_syms().

◆ show_debug_coff_pe_read()

static void show_debug_coff_pe_read ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 687 of file coff-pe-read.c.

References gdb_printf().

Variable Documentation

◆ debug_coff_pe_read

unsigned int debug_coff_pe_read
static

Definition at line 47 of file coff-pe-read.c.

Referenced by add_pe_exported_sym(), add_pe_forwarded_sym(), and read_pe_exported_syms().