Delete dead function.
[deliverable/binutils-gdb.git] / binutils / dwarf.h
CommitLineData
1b315056 1/* dwarf.h - DWARF support header file
aa820537 2 Copyright 2005, 2007, 2008, 2009
19e6b90e
L
3 Free Software Foundation, Inc.
4
32866df7 5 This file is part of GNU Binutils.
19e6b90e 6
32866df7
NC
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
19e6b90e 11
32866df7
NC
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
19e6b90e 16
32866df7
NC
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
19e6b90e 21
19e6b90e
L
22#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
23/* We can't use any bfd types here since readelf may define BFD64 and
24 objdump may not. */
25typedef unsigned long long dwarf_vma;
26typedef unsigned long long dwarf_size_type;
27#else
28typedef unsigned long dwarf_vma;
29typedef unsigned long dwarf_size_type;
30#endif
31
32struct dwarf_section
33{
1b315056 34 /* A debug section has a different name when it's stored compressed
c34f4fc6
NC
35 or not. COMPRESSED_NAME and UNCOMPRESSED_NAME are the two
36 possibilities. NAME is set to whichever one is used for this
37 input file, as determined by load_debug_section(). */
1b315056
CS
38 const char *uncompressed_name;
39 const char *compressed_name;
4cb93e3b 40 const char *name;
19e6b90e
L
41 unsigned char *start;
42 dwarf_vma address;
43 dwarf_size_type size;
44};
45
46/* A structure containing the name of a debug section
47 and a pointer to a function that can decode it. */
48struct dwarf_section_display
49{
50 struct dwarf_section section;
51 int (*display) (struct dwarf_section *, void *);
4cb93e3b 52 int *enabled;
19e6b90e 53 unsigned int relocate : 1;
19e6b90e
L
54};
55
c34f4fc6
NC
56enum dwarf_section_display_enum
57{
19e6b90e
L
58 abbrev = 0,
59 aranges,
60 frame,
61 info,
62 line,
63 pubnames,
64 eh_frame,
65 macinfo,
66 str,
67 loc,
68 pubtypes,
69 ranges,
70 static_func,
71 static_vars,
72 types,
73 weaknames,
74 max
75};
76
77extern struct dwarf_section_display debug_displays [];
78
79/* This structure records the information that
80 we extract from the.debug_info section. */
81typedef struct
82{
83 unsigned int pointer_size;
84 unsigned long cu_offset;
85 unsigned long base_address;
86 /* This is an array of offsets to the location list table. */
87 unsigned long *loc_offsets;
88 int *have_frame_base;
89 unsigned int num_loc_offsets;
90 unsigned int max_loc_offsets;
01a8f077 91 /* List of .debug_ranges offsets seen in this .debug_info. */
19e6b90e
L
92 unsigned long *range_lists;
93 unsigned int num_range_lists;
94 unsigned int max_range_lists;
95}
96debug_info;
97
98extern dwarf_vma (*byte_get) (unsigned char *, int);
99extern dwarf_vma byte_get_little_endian (unsigned char *, int);
100extern dwarf_vma byte_get_big_endian (unsigned char *, int);
101
2dc4cec1 102extern int eh_addr_size;
19e6b90e
L
103
104extern int do_debug_info;
105extern int do_debug_abbrevs;
106extern int do_debug_lines;
107extern int do_debug_pubnames;
f9f0e732 108extern int do_debug_pubtypes;
19e6b90e
L
109extern int do_debug_aranges;
110extern int do_debug_ranges;
111extern int do_debug_frames;
112extern int do_debug_frames_interp;
113extern int do_debug_macinfo;
114extern int do_debug_str;
115extern int do_debug_loc;
c34f4fc6 116extern int do_wide;
19e6b90e 117
2dc4cec1
L
118extern void init_dwarf_regnames (unsigned int);
119
19e6b90e
L
120extern int load_debug_section (enum dwarf_section_display_enum,
121 void *);
122extern void free_debug_section (enum dwarf_section_display_enum);
123
124extern void free_debug_memory (void);
125
c34f4fc6
NC
126extern void dwarf_select_sections_by_names (const char *);
127extern void dwarf_select_sections_by_letters (const char *);
4cb93e3b
TG
128extern void dwarf_select_sections_all (void);
129
19e6b90e
L
130void *cmalloc (size_t, size_t);
131void *xcmalloc (size_t, size_t);
132void *xcrealloc (void *, size_t, size_t);
133
134void error (const char *, ...) ATTRIBUTE_PRINTF_1;
135void warn (const char *, ...) ATTRIBUTE_PRINTF_1;
This page took 0.160757 seconds and 4 git commands to generate.