binutils  2.23.2
About: GNU Binutils are a collection of binary tools. The main ones are "ld" the GNU linker and "(g)as" the GNU assembler.
  Fossies Dox: binutils-2.23.2.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
dwarf2dbg.c File Reference
#include "as.h"
#include "safe-ctype.h"
#include "dwarf2dbg.h"
#include <filenames.h>
#include "subsegs.h"
#include "dwarf2.h"
Include dependency graph for dwarf2dbg.c:

Go to the source code of this file.

Data Structures

struct  line_entry
 
struct  line_subseg
 
struct  line_seg
 
struct  file_entry
 

Macros

#define INT_MAX   (int) (((unsigned) (-1)) >> 1)
 
#define INSERT_DIR_SEPARATOR(string, offset)   string[offset] = '/'
 
#define DWARF2_FORMAT(SEC)   dwarf2_format_32bit
 
#define DWARF2_ADDR_SIZE(bfd)   (bfd_arch_bits_per_address (bfd) / 8)
 
#define DWARF2_FILE_NAME(FILENAME, DIRNAME)   FILENAME
 
#define DWARF2_FILE_TIME_NAME(FILENAME, DIRNAME)   0
 
#define DWARF2_FILE_SIZE_NAME(FILENAME, DIRNAME)   0
 
#define DWARF2_VERSION   2
 
#define DWARF2_ARANGES_VERSION   2
 
#define DWARF2_LINE_VERSION   2
 
#define DL_PROLOG   0
 
#define DL_FILES   1
 
#define DL_BODY   2
 
#define DWARF2_USE_FIXED_ADVANCE_PC   linkrelax
 
#define DWARF2_LINE_OPCODE_BASE   13
 
#define DWARF2_LINE_BASE   -5
 
#define DWARF2_LINE_RANGE   14
 
#define DWARF2_LINE_MIN_INSN_LENGTH   1
 
#define DWARF2_LINE_DEFAULT_IS_STMT   1
 
#define SPECIAL_LINE(op)   (((op) - DWARF2_LINE_OPCODE_BASE)%DWARF2_LINE_RANGE + DWARF2_LINE_BASE)
 
#define SPECIAL_ADDR(op)   (((op) - DWARF2_LINE_OPCODE_BASE)/DWARF2_LINE_RANGE)
 
#define MAX_SPECIAL_ADDR_DELTA   SPECIAL_ADDR(255)
 
#define TC_DWARF2_EMIT_OFFSET   generic_dwarf2_emit_offset
 
#define ADDR_DELTA_LIMIT   50000
 

Functions

void dwarf2_gen_line_info (addressT ofs, struct dwarf2_line_info *loc)
 
void dwarf2_where (struct dwarf2_line_info *line)
 
void dwarf2_set_isa (unsigned int isa)
 
void dwarf2_emit_insn (int size)
 
void dwarf2_consume_line_info (void)
 
void dwarf2_emit_label (symbolS *label)
 
char * dwarf2_directive_file (int dummy ATTRIBUTE_UNUSED)
 
void dwarf2_directive_loc (int dummy ATTRIBUTE_UNUSED)
 
void dwarf2_directive_loc_mark_labels (int dummy ATTRIBUTE_UNUSED)
 
int dwarf2dbg_estimate_size_before_relax (fragS *frag)
 
int dwarf2dbg_relax_frag (fragS *frag)
 
void dwarf2dbg_convert_frag (fragS *frag)
 
void dwarf2_init (void)
 
void dwarf2_finish (void)
 

Variables

bfd_boolean dwarf2_loc_directive_seen
 
bfd_boolean dwarf2_loc_mark_labels
 

Macro Definition Documentation

#define ADDR_DELTA_LIMIT   50000

Definition at line 1075 of file dwarf2dbg.c.

#define DL_BODY   2

Definition at line 116 of file dwarf2dbg.c.

#define DL_FILES   1

Definition at line 115 of file dwarf2dbg.c.

#define DL_PROLOG   0

Definition at line 114 of file dwarf2dbg.c.

#define DWARF2_ADDR_SIZE (   bfd)    (bfd_arch_bits_per_address (bfd) / 8)

Definition at line 77 of file dwarf2dbg.c.

Referenced by dwarf2_finish().

#define DWARF2_ARANGES_VERSION   2

Definition at line 98 of file dwarf2dbg.c.

#define DWARF2_FILE_NAME (   FILENAME,
  DIRNAME 
)    FILENAME

Definition at line 81 of file dwarf2dbg.c.

#define DWARF2_FILE_SIZE_NAME (   FILENAME,
  DIRNAME 
)    0

Definition at line 89 of file dwarf2dbg.c.

#define DWARF2_FILE_TIME_NAME (   FILENAME,
  DIRNAME 
)    0

Definition at line 85 of file dwarf2dbg.c.

#define DWARF2_FORMAT (   SEC)    dwarf2_format_32bit

Definition at line 73 of file dwarf2dbg.c.

#define DWARF2_LINE_BASE   -5

Definition at line 134 of file dwarf2dbg.c.

#define DWARF2_LINE_DEFAULT_IS_STMT   1

Definition at line 149 of file dwarf2dbg.c.

#define DWARF2_LINE_MIN_INSN_LENGTH   1

Definition at line 145 of file dwarf2dbg.c.

#define DWARF2_LINE_OPCODE_BASE   13

Definition at line 129 of file dwarf2dbg.c.

#define DWARF2_LINE_RANGE   14

Definition at line 139 of file dwarf2dbg.c.

#define DWARF2_LINE_VERSION   2

Definition at line 103 of file dwarf2dbg.c.

#define DWARF2_USE_FIXED_ADVANCE_PC   linkrelax
#define DWARF2_VERSION   2

Definition at line 93 of file dwarf2dbg.c.

#define INSERT_DIR_SEPARATOR (   string,
  offset 
)    string[offset] = '/'

Definition at line 69 of file dwarf2dbg.c.

Referenced by dwarf2_directive_loc().

#define INT_MAX   (int) (((unsigned) (-1)) >> 1)

Definition at line 42 of file dwarf2dbg.c.

#define MAX_SPECIAL_ADDR_DELTA   SPECIAL_ADDR(255)

Definition at line 160 of file dwarf2dbg.c.

#define SPECIAL_ADDR (   op)    (((op) - DWARF2_LINE_OPCODE_BASE)/DWARF2_LINE_RANGE)

Definition at line 157 of file dwarf2dbg.c.

#define SPECIAL_LINE (   op)    (((op) - DWARF2_LINE_OPCODE_BASE)%DWARF2_LINE_RANGE + DWARF2_LINE_BASE)

Definition at line 152 of file dwarf2dbg.c.

#define TC_DWARF2_EMIT_OFFSET   generic_dwarf2_emit_offset

Definition at line 230 of file dwarf2dbg.c.

Function Documentation

void dwarf2_directive_loc_mark_labels ( int dummy  ATTRIBUTE_UNUSED)
void dwarf2_init ( void  )

Definition at line 1799 of file dwarf2dbg.c.

References hash_new().

Referenced by main().

void dwarf2_set_isa ( unsigned int  isa)

Definition at line 403 of file dwarf2dbg.c.

References dwarf2_line_info::isa.

int dwarf2dbg_estimate_size_before_relax ( fragS frag)
int dwarf2dbg_relax_frag ( fragS frag)

Definition at line 1224 of file dwarf2dbg.c.

References dwarf2dbg_estimate_size_before_relax(), and frag::fr_subtype.

Referenced by relax_segment().

Variable Documentation

bfd_boolean dwarf2_loc_directive_seen
bfd_boolean dwarf2_loc_mark_labels