OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [stabsread.h] - Blame information for rev 105

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 104 markom
/* Include file for stabs debugging format support functions.
2
   Copyright 1986-1991, 1992, 1993 Free Software Foundation, Inc.
3
 
4
   This file is part of GDB.
5
 
6
   This program is free software; you can redistribute it and/or modify
7
   it under the terms of the GNU General Public License as published by
8
   the Free Software Foundation; either version 2 of the License, or
9
   (at your option) any later version.
10
 
11
   This program is distributed in the hope that it will be useful,
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
   GNU General Public License for more details.
15
 
16
   You should have received a copy of the GNU General Public License
17
   along with this program; if not, write to the Free Software
18
   Foundation, Inc., 59 Temple Place - Suite 330,
19
   Boston, MA 02111-1307, USA.  */
20
 
21
/* Definitions, prototypes, etc for stabs debugging format support
22
   functions.
23
 
24
   Variables declared in this file can be defined by #define-ing
25
   the name EXTERN to null.  It is used to declare variables that
26
   are normally extern, but which get defined in a single module
27
   using this technique.  */
28
 
29
#ifndef EXTERN
30
#define EXTERN extern
31
#endif
32
 
33
/* Convert stab register number (from `r' declaration) to a gdb REGNUM.  */
34
 
35
#ifndef STAB_REG_TO_REGNUM
36
#define STAB_REG_TO_REGNUM(VALUE) (VALUE)
37
#endif
38
 
39
/* Hash table of global symbols whose values are not known yet.
40
   They are chained thru the SYMBOL_VALUE_CHAIN, since we don't
41
   have the correct data for that slot yet.
42
 
43
   The use of the LOC_BLOCK code in this chain is nonstandard--
44
   it refers to a FORTRAN common block rather than the usual meaning, and
45
   the such LOC_BLOCK symbols use their fields in nonstandard ways.  */
46
 
47
EXTERN struct symbol *global_sym_chain[HASHSIZE];
48
 
49
extern void common_block_start PARAMS ((char *, struct objfile *));
50
extern void common_block_end PARAMS ((struct objfile *));
51
 
52
/* Kludge for xcoffread.c */
53
 
54
struct pending_stabs
55
  {
56
    int count;
57
    int length;
58
    char *stab[1];
59
  };
60
 
61
EXTERN struct pending_stabs *global_stabs;
62
 
63
/* The type code that process_one_symbol saw on its previous invocation.
64
   Used to detect pairs of N_SO symbols. */
65
 
66
EXTERN int previous_stab_code;
67
 
68
/* Support for Sun changes to dbx symbol format */
69
 
70
/* For each identified header file, we have a table of types defined
71
   in that header file.
72
 
73
   header_files maps header file names to their type tables.
74
   It is a vector of n_header_files elements.
75
   Each element describes one header file.
76
   It contains a vector of types.
77
 
78
   Sometimes it can happen that the same header file produces
79
   different results when included in different places.
80
   This can result from conditionals or from different
81
   things done before including the file.
82
   When this happens, there are multiple entries for the file in this table,
83
   one entry for each distinct set of results.
84
   The entries are distinguished by the INSTANCE field.
85
   The INSTANCE field appears in the N_BINCL and N_EXCL symbol table and is
86
   used to match header-file references to their corresponding data.  */
87
 
88
struct header_file
89
  {
90
 
91
    /* Name of header file */
92
 
93
    char *name;
94
 
95
    /* Numeric code distinguishing instances of one header file that produced
96
       different results when included.  It comes from the N_BINCL or N_EXCL. */
97
 
98
    int instance;
99
 
100
    /* Pointer to vector of types */
101
 
102
    struct type **vector;
103
 
104
    /* Allocated length (# elts) of that vector */
105
 
106
    int length;
107
 
108
  };
109
 
110
/* The table of header_files of this OBJFILE. */
111
#define HEADER_FILES(OBJFILE) (DBX_SYMFILE_INFO (OBJFILE)->header_files)
112
 
113
/* The actual length of HEADER_FILES. */
114
#define N_HEADER_FILES(OBJFILE) (DBX_SYMFILE_INFO (OBJFILE)->n_header_files)
115
 
116
/* The allocated lengh of HEADER_FILES. */
117
#define N_ALLOCATED_HEADER_FILES(OBJFILE) \
118
  (DBX_SYMFILE_INFO (OBJFILE)->n_allocated_header_files)
119
 
120
/* Within each object file, various header files are assigned numbers.
121
   A type is defined or referred to with a pair of numbers
122
   (FILENUM,TYPENUM) where FILENUM is the number of the header file
123
   and TYPENUM is the number within that header file.
124
   TYPENUM is the index within the vector of types for that header file.
125
 
126
   FILENUM == 0 is special; it refers to the main source of the object file,
127
   and not to any header file.  FILENUM != 1 is interpreted by looking it up
128
   in the following table, which contains indices in header_files.  */
129
 
130
EXTERN int *this_object_header_files;
131
 
132
EXTERN int n_this_object_header_files;
133
 
134
EXTERN int n_allocated_this_object_header_files;
135
 
136
extern struct complaint unknown_symtype_complaint;
137
extern struct complaint unknown_symchar_complaint;
138
 
139
extern struct type *
140
  read_type PARAMS ((char **, struct objfile *));
141
 
142
extern void
143
cleanup_undefined_types PARAMS ((void));
144
 
145
extern struct type **
146
  dbx_lookup_type PARAMS ((int[2]));
147
 
148
extern long
149
read_number PARAMS ((char **, int));
150
 
151
extern void
152
add_undefined_type PARAMS ((struct type *));
153
 
154
extern struct symbol *
155
  define_symbol PARAMS ((CORE_ADDR, char *, int, int, struct objfile *));
156
 
157
extern void
158
stabsread_init PARAMS ((void));
159
 
160
extern void
161
stabsread_new_init PARAMS ((void));
162
 
163
extern void
164
start_stabs PARAMS ((void));
165
 
166
extern void
167
end_stabs PARAMS ((void));
168
 
169
extern void
170
finish_global_stabs PARAMS ((struct objfile * objfile));
171
 
172
 
173
EXTERN int os9k_stabs;
174
 
175
/* COFF files can have multiple .stab sections, if they are linked
176
   using --split-by-reloc.  This linked list is used to pass the
177
   information into the functions in dbxread.c.  */
178
struct stab_section_list
179
  {
180
    /* Next in list.  */
181
    struct stab_section_list *next;
182
 
183
    /* Stab section.  */
184
    asection *section;
185
  };
186
 
187
/* Functions exported by dbxread.c.  These are not in stabsread.c because
188
   they are only used by some stabs readers.  */
189
 
190
extern struct partial_symtab *
191
  end_psymtab PARAMS ((struct partial_symtab * pst,
192
                       char **include_list,
193
                       int num_includes,
194
                       int capping_symbol_offset,
195
                       CORE_ADDR capping_text,
196
                       struct partial_symtab ** dependency_list,
197
                       int number_dependencies,
198
                       int textlow_not_set));
199
 
200
extern void
201
process_one_symbol PARAMS ((int, int, CORE_ADDR, char *,
202
                            struct section_offsets *, struct objfile *));
203
 
204
extern void elfstab_build_psymtabs
205
  PARAMS ((struct objfile * objfile,
206
           int mainline,
207
           file_ptr staboff, unsigned int stabsize,
208
           file_ptr stabstroffset,
209
           unsigned int stabstrsize));
210
 
211
extern void coffstab_build_psymtabs
212
  PARAMS ((struct objfile * objfile,
213
           int mainline,
214
           CORE_ADDR textaddr, unsigned int textsize,
215
           struct stab_section_list * stabs,
216
           file_ptr stabstroffset,
217
           unsigned int stabstrsize));
218
 
219
extern void stabsect_build_psymtabs
220
  PARAMS ((struct objfile * objfile,
221
           int mainline,
222
           char *stab_name,
223
           char *stabstr_name,
224
           char *text_name));
225
 
226
extern void elfstab_offset_sections PARAMS ((struct objfile *,
227
                                             struct partial_symtab *));
228
 
229
extern void process_later
230
  PARAMS ((struct symbol *, char *,
231
           int (*f) PARAMS ((struct objfile *, struct symbol *, char *))));
232
 
233
extern int symbol_reference_defined PARAMS ((char **));
234
 
235
extern void ref_add PARAMS ((int, struct symbol *, char *, CORE_ADDR));
236
 
237
extern struct symbol *ref_search PARAMS ((int));
238
 
239
extern int resolve_cfront_continuation
240
  PARAMS ((struct objfile * objfile, struct symbol * sym, char *p));
241
 
242
#undef EXTERN

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.