GDB (xrefs)
/tmp/gdb-8.1/gdb/symfile.h
Go to the documentation of this file.
1 /* Definitions for reading symbol files into GDB.
2 
3  Copyright (C) 1990-2018 Free Software Foundation, Inc.
4 
5  This file is part of GDB.
6 
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.
11 
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.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #if !defined (SYMFILE_H)
21 #define SYMFILE_H
22 
23 /* This file requires that you first include "bfd.h". */
24 #include "symtab.h"
25 #include "probe.h"
26 #include "symfile-add-flags.h"
27 #include "objfile-flags.h"
28 #include "gdb_bfd.h"
29 #include "common/function-view.h"
30 
31 /* Opaque declarations. */
32 struct target_section;
33 struct objfile;
34 struct obj_section;
35 struct obstack;
36 struct block;
37 struct value;
38 struct frame_info;
39 struct agent_expr;
40 struct axs_value;
41 class probe;
42 
43 /* Comparison function for symbol look ups. */
44 
45 typedef int (symbol_compare_ftype) (const char *string1,
46  const char *string2);
47 
49 {
51  char *name;
52 
53  /* SECTINDEX must be valid for associated BFD or set to -1. */
54  int sectindex;
55 };
56 
57 /* Define an array of addresses to accommodate non-contiguous dynamic
58  loading of modules. This is for use when entering commands, so we
59  can keep track of the section names until we read the file and can
60  map them to bfd sections. This structure is also used by solib.c
61  to communicate the section addresses in shared objects to
62  symbol_file_add (). */
63 
65 {
66  /* The number of sections for which address information is
67  available. */
68  size_t num_sections;
69  /* Sections whose names are file format dependent. */
70  struct other_sections other[1];
71 };
72 
73 
74 /* A table listing the load segments in a symfile, and which segment
75  each BFD section belongs to. */
77 {
78  /* How many segments are present in this file. If there are
79  two, the text segment is the first one and the data segment
80  is the second one. */
82 
83  /* If NUM_SEGMENTS is greater than zero, the original base address
84  of each segment. */
86 
87  /* If NUM_SEGMENTS is greater than zero, the memory size of each
88  segment. */
90 
91  /* If NUM_SEGMENTS is greater than zero, this is an array of entries
92  recording which segment contains each BFD section.
93  SEGMENT_INFO[I] is S+1 if the I'th BFD section belongs to segment
94  S, or zero if it is not in any segment. */
96 };
97 
98 /* Callback for quick_symbol_functions->map_symbol_filenames. */
99 
100 typedef void (symbol_filename_ftype) (const char *filename,
101  const char *fullname, void *data);
102 
103 /* Callback for quick_symbol_functions->expand_symtabs_matching
104  to match a file name. */
105 
106 typedef bool (expand_symtabs_file_matcher_ftype) (const char *filename,
107  bool basenames);
108 
109 /* Callback for quick_symbol_functions->expand_symtabs_matching
110  to match a symbol name. */
111 
112 typedef bool (expand_symtabs_symbol_matcher_ftype) (const char *name);
113 
114 /* Callback for quick_symbol_functions->expand_symtabs_matching
115  to be called after a symtab has been expanded. */
116 
118 
119 /* The "quick" symbol functions exist so that symbol readers can
120  avoiding an initial read of all the symbols. For example, symbol
121  readers might choose to use the "partial symbol table" utilities,
122  which is one implementation of the quick symbol functions.
123 
124  The quick symbol functions are generally opaque: the underlying
125  representation is hidden from the caller.
126 
127  In general, these functions should only look at whatever special
128  index the symbol reader creates -- looking through the symbol
129  tables themselves is handled by generic code. If a function is
130  defined as returning a "symbol table", this means that the function
131  should only return a newly-created symbol table; it should not
132  examine pre-existing ones.
133 
134  The exact list of functions here was determined in an ad hoc way
135  based on gdb's history. */
136 
138 {
139  /* Return true if this objfile has any "partial" symbols
140  available. */
141  int (*has_symbols) (struct objfile *objfile);
142 
143  /* Return the symbol table for the "last" file appearing in
144  OBJFILE. */
145  struct symtab *(*find_last_source_symtab) (struct objfile *objfile);
146 
147  /* Forget all cached full file names for OBJFILE. */
149 
150  /* Expand and iterate over each "partial" symbol table in OBJFILE
151  where the source file is named NAME.
152 
153  If NAME is not absolute, a match after a '/' in the symbol table's
154  file name will also work, REAL_PATH is NULL then. If NAME is
155  absolute then REAL_PATH is non-NULL absolute file name as resolved
156  via gdb_realpath from NAME.
157 
158  If a match is found, the "partial" symbol table is expanded.
159  Then, this calls iterate_over_some_symtabs (or equivalent) over
160  all newly-created symbol tables, passing CALLBACK to it.
161  The result of this call is returned. */
163  (struct objfile *objfile, const char *name, const char *real_path,
165 
166  /* Check to see if the symbol is defined in a "partial" symbol table
167  of OBJFILE. BLOCK_INDEX should be either GLOBAL_BLOCK or STATIC_BLOCK,
168  depending on whether we want to search global symbols or static
169  symbols. NAME is the name of the symbol to look for. DOMAIN
170  indicates what sort of symbol to search for.
171 
172  Returns the newly-expanded compunit in which the symbol is
173  defined, or NULL if no such symbol table exists. If OBJFILE
174  contains !TYPE_OPAQUE symbol prefer its compunit. If it contains
175  only TYPE_OPAQUE symbol(s), return at least that compunit. */
176  struct compunit_symtab *(*lookup_symbol) (struct objfile *objfile,
177  int block_index, const char *name,
178  domain_enum domain);
179 
180  /* Print statistics about any indices loaded for OBJFILE. The
181  statistics should be printed to gdb_stdout. This is used for
182  "maint print statistics". */
183  void (*print_stats) (struct objfile *objfile);
184 
185  /* Dump any indices loaded for OBJFILE. The dump should go to
186  gdb_stdout. This is used for "maint print objfiles". */
187  void (*dump) (struct objfile *objfile);
188 
189  /* This is called by objfile_relocate to relocate any indices loaded
190  for OBJFILE. */
191  void (*relocate) (struct objfile *objfile,
192  const struct section_offsets *new_offsets,
193  const struct section_offsets *delta);
194 
195  /* Find all the symbols in OBJFILE named FUNC_NAME, and ensure that
196  the corresponding symbol tables are loaded. */
198  const char *func_name);
199 
200  /* Read all symbol tables associated with OBJFILE. */
201  void (*expand_all_symtabs) (struct objfile *objfile);
202 
203  /* Read all symbol tables associated with OBJFILE which have
204  symtab_to_fullname equal to FULLNAME.
205  This is for the purposes of examining code only, e.g., expand_line_sal.
206  The routine may ignore debug info that is known to not be useful with
207  code, e.g., DW_TAG_type_unit for dwarf debug info. */
209  const char *fullname);
210 
211  /* Find global or static symbols in all tables that are in DOMAIN
212  and for which MATCH (symbol name, NAME) == 0, passing each to
213  CALLBACK, reading in partial symbol tables as needed. Look
214  through global symbols if GLOBAL and otherwise static symbols.
215  Passes NAME, NAMESPACE, and DATA to CALLBACK with each symbol
216  found. After each block is processed, passes NULL to CALLBACK.
217  MATCH must be weaker than strcmp_iw_ordered in the sense that
218  strcmp_iw_ordered(x,y) == 0 --> MATCH(x,y) == 0. ORDERED_COMPARE,
219  if non-null, must be an ordering relation compatible with
220  strcmp_iw_ordered in the sense that
221  strcmp_iw_ordered(x,y) == 0 --> ORDERED_COMPARE(x,y) == 0
222  and
223  strcmp_iw_ordered(x,y) <= 0 --> ORDERED_COMPARE(x,y) <= 0
224  (allowing strcmp_iw_ordered(x,y) < 0 while ORDERED_COMPARE(x, y) == 0).
225  CALLBACK returns 0 to indicate that the scan should continue, or
226  non-zero to indicate that the scan should be terminated. */
227 
228  void (*map_matching_symbols) (struct objfile *,
229  const char *name, domain_enum domain,
230  int global,
231  int (*callback) (struct block *,
232  struct symbol *, void *),
233  void *data,
235  symbol_compare_ftype *ordered_compare);
236 
237  /* Expand all symbol tables in OBJFILE matching some criteria.
238 
239  FILE_MATCHER is called for each file in OBJFILE. The file name
240  is passed to it. If the matcher returns false, the file is
241  skipped. If FILE_MATCHER is NULL the file is not skipped. If
242  BASENAMES is true the matcher should consider only file base
243  names (the passed file name is already only the lbasename'd
244  part).
245 
246  Otherwise, if KIND does not match, this symbol is skipped.
247 
248  If even KIND matches, SYMBOL_MATCHER is called for each symbol
249  defined in the file. The symbol "search" name is passed to
250  SYMBOL_MATCHER.
251 
252  If SYMBOL_MATCHER returns false, then the symbol is skipped.
253 
254  Otherwise, the symbol's symbol table is expanded. */
256  (struct objfile *objfile,
258  const lookup_name_info &lookup_name,
261  enum search_domain kind);
262 
263  /* Return the comp unit from OBJFILE that contains PC and
264  SECTION. Return NULL if there is no such compunit. This
265  should return the compunit that contains a symbol whose
266  address exactly matches PC, or, if there is no exact match, the
267  compunit that contains a symbol whose address is closest to
268  PC. */
269  struct compunit_symtab *(*find_pc_sect_compunit_symtab)
270  (struct objfile *objfile, struct bound_minimal_symbol msymbol,
271  CORE_ADDR pc, struct obj_section *section, int warn_if_readin);
272 
273  /* Return the comp unit from OBJFILE that contains a symbol at
274  ADDRESS. Return NULL if there is no such comp unit. Unlike
275  find_pc_sect_compunit_symtab, any sort of symbol (not just text
276  symbols) can be considered, and only exact address matches are
277  considered. This pointer may be NULL. */
278  struct compunit_symtab *(*find_compunit_symtab_by_address)
279  (struct objfile *objfile, CORE_ADDR address);
280 
281  /* Call a callback for every file defined in OBJFILE whose symtab is
282  not already read in. FUN is the callback. It is passed the file's
283  FILENAME, the file's FULLNAME (if need_fullname is non-zero), and
284  the DATA passed to this function. */
286  symbol_filename_ftype *fun, void *data,
287  int need_fullname);
288 };
289 
290 /* Structure of functions used for probe support. If one of these functions
291  is provided, all must be. */
292 
294 {
295  /* If non-NULL, return a reference to vector of probe objects. */
296  const std::vector<probe *> &(*sym_get_probes) (struct objfile *);
297 };
298 
299 /* Structure to keep track of symbol reading functions for various
300  object file types. */
301 
302 struct sym_fns
303 {
304  /* Initializes anything that is global to the entire symbol table.
305  It is called during symbol_file_add, when we begin debugging an
306  entirely new program. */
307 
308  void (*sym_new_init) (struct objfile *);
309 
310  /* Reads any initial information from a symbol file, and initializes
311  the struct sym_fns SF in preparation for sym_read(). It is
312  called every time we read a symbol file for any reason. */
313 
314  void (*sym_init) (struct objfile *);
315 
316  /* sym_read (objfile, symfile_flags) Reads a symbol file into a psymtab
317  (or possibly a symtab). OBJFILE is the objfile struct for the
318  file we are reading. SYMFILE_FLAGS are the flags passed to
319  symbol_file_add & co. */
320 
321  void (*sym_read) (struct objfile *, symfile_add_flags);
322 
323  /* Read the partial symbols for an objfile. This may be NULL, in which case
324  gdb has to check other ways if this objfile has any symbols. This may
325  only be non-NULL if the objfile actually does have debuginfo available.
326  */
327 
328  void (*sym_read_psymbols) (struct objfile *);
329 
330  /* Called when we are finished with an objfile. Should do all
331  cleanup that is specific to the object file format for the
332  particular objfile. */
333 
334  void (*sym_finish) (struct objfile *);
335 
336 
337  /* This function produces a file-dependent section_offsets
338  structure, allocated in the objfile's storage.
339 
340  The section_addr_info structure contains the offset of loadable and
341  allocated sections, relative to the absolute offsets found in the BFD. */
342 
343  void (*sym_offsets) (struct objfile *, const struct section_addr_info *);
344 
345  /* This function produces a format-independent description of
346  the segments of ABFD. Each segment is a unit of the file
347  which may be relocated independently. */
348 
349  struct symfile_segment_data *(*sym_segments) (bfd *abfd);
350 
351  /* This function should read the linetable from the objfile when
352  the line table cannot be read while processing the debugging
353  information. */
354 
355  void (*sym_read_linetable) (struct objfile *);
356 
357  /* Relocate the contents of a debug section SECTP. The
358  contents are stored in BUF if it is non-NULL, or returned in a
359  malloc'd buffer otherwise. */
360 
361  bfd_byte *(*sym_relocate) (struct objfile *, asection *sectp, bfd_byte *buf);
362 
363  /* If non-NULL, this objfile has probe support, and all the probe
364  functions referred to here will be non-NULL. */
366 
367  /* The "quick" (aka partial) symbol functions for this symbol
368  reader. */
369  const struct quick_symbol_functions *qf;
370 };
371 
372 extern struct section_addr_info *
374 
377  const struct section_addr_info *addrs);
378 
379 extern void addr_info_make_relative (struct section_addr_info *addrs,
380  bfd *abfd);
381 
382 /* The default version of sym_fns.sym_offsets for readers that don't
383  do anything special. */
384 
385 extern void default_symfile_offsets (struct objfile *objfile,
386  const struct section_addr_info *);
387 
388 /* The default version of sym_fns.sym_segments for readers that don't
389  do anything special. */
390 
391 extern struct symfile_segment_data *default_symfile_segments (bfd *abfd);
392 
393 /* The default version of sym_fns.sym_relocate for readers that don't
394  do anything special. */
395 
396 extern bfd_byte *default_symfile_relocate (struct objfile *objfile,
397  asection *sectp, bfd_byte *buf);
398 
399 extern struct symtab *allocate_symtab (struct compunit_symtab *, const char *)
400  ATTRIBUTE_NONNULL (1);
401 
402 extern struct compunit_symtab *allocate_compunit_symtab (struct objfile *,
403  const char *)
404  ATTRIBUTE_NONNULL (1);
405 
406 extern void add_compunit_symtab_to_objfile (struct compunit_symtab *cu);
407 
408 extern void add_symtab_fns (enum bfd_flavour flavour, const struct sym_fns *);
409 
410 extern void clear_symtab_users (symfile_add_flags add_flags);
411 
412 extern enum language deduce_language_from_filename (const char *);
413 
414 /* Map the filename extension EXT to the language LANG. Any previous
415  association of EXT will be removed. EXT will be copied by this
416  function. */
417 extern void add_filename_language (const char *ext, enum language lang);
418 
419 extern struct objfile *symbol_file_add (const char *, symfile_add_flags,
420  struct section_addr_info *, objfile_flags);
421 
422 extern struct objfile *symbol_file_add_from_bfd (bfd *, const char *, symfile_add_flags,
423  struct section_addr_info *,
424  objfile_flags, struct objfile *parent);
425 
426 extern void symbol_file_add_separate (bfd *, const char *, symfile_add_flags,
427  struct objfile *);
428 
429 extern char *find_separate_debug_file_by_debuglink (struct objfile *);
430 
431 /* Create a new section_addr_info, with room for NUM_SECTIONS. */
432 
433 extern struct section_addr_info *alloc_section_addr_info (size_t
434  num_sections);
435 
436 /* Build (allocate and populate) a section_addr_info struct from an
437  existing section table. */
438 
439 extern struct section_addr_info
441  *start,
442  const struct target_section
443  *end);
444 
445 /* Free all memory allocated by
446  build_section_addr_info_from_section_table. */
447 
448 extern void free_section_addr_info (struct section_addr_info *);
449 
450 
451  /* Variables */
452 
453 /* If non-zero, shared library symbols will be added automatically
454  when the inferior is created, new libraries are loaded, or when
455  attaching to the inferior. This is almost always what users will
456  want to have happen; but for very large programs, the startup time
457  will be excessive, and so if this is a problem, the user can clear
458  this flag and then add the shared library symbols as needed. Note
459  that there is a potential for confusion, since if the shared
460  library symbols are not loaded, commands like "info fun" will *not*
461  report all the functions that are actually present. */
462 
463 extern int auto_solib_add;
464 
465 /* From symfile.c */
466 
467 extern void set_initial_language (void);
468 
469 extern void find_lowest_section (bfd *, asection *, void *);
470 
471 extern gdb_bfd_ref_ptr symfile_bfd_open (const char *);
472 
473 extern int get_section_index (struct objfile *, const char *);
474 
475 extern int print_symbol_loading_p (int from_tty, int mainline, int full);
476 
477 /* Utility functions for overlay sections: */
479 {
484 extern int overlay_cache_invalid;
485 
486 /* Return the "mapped" overlay section containing the PC. */
488 
489 /* Return any overlay section containing the PC (even in its LMA
490  region). */
491 extern struct obj_section *find_pc_overlay (CORE_ADDR);
492 
493 /* Return true if the section is an overlay. */
494 extern int section_is_overlay (struct obj_section *);
495 
496 /* Return true if the overlay section is currently "mapped". */
497 extern int section_is_mapped (struct obj_section *);
498 
499 /* Return true if pc belongs to section's VMA. */
501 
502 /* Return true if pc belongs to section's LMA. */
504 
505 /* Map an address from a section's LMA to its VMA. */
507 
508 /* Map an address from a section's VMA to its LMA. */
510 
511 /* Convert an address in an overlay section (force into VMA range). */
513 
514 /* Load symbols from a file. */
515 extern void symbol_file_add_main (const char *args,
516  symfile_add_flags add_flags);
517 
518 /* Clear GDB symbol tables. */
519 extern void symbol_file_clear (int from_tty);
520 
521 /* Default overlay update function. */
522 extern void simple_overlay_update (struct obj_section *);
523 
524 extern bfd_byte *symfile_relocate_debug_section (struct objfile *, asection *,
525  bfd_byte *);
526 
527 extern int symfile_map_offsets_to_segments (bfd *,
528  const struct symfile_segment_data *,
529  struct section_offsets *,
530  int, const CORE_ADDR *);
533 
535 
538  const lookup_name_info &lookup_name,
541  enum search_domain kind);
542 
543 void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
544  int need_fullname);
545 
546 /* From dwarf2read.c */
547 
548 /* Names for a dwarf2 debugging section. The field NORMAL is the normal
549  section name (usually from the DWARF standard), while the field COMPRESSED
550  is the name of compressed sections. If your object file format doesn't
551  support compressed sections, the field COMPRESSED can be NULL. Likewise,
552  the debugging section is not supported, the field NORMAL can be NULL too.
553  It doesn't make sense to have a NULL NORMAL field but a non-NULL COMPRESSED
554  field. */
555 
557  const char *normal;
558  const char *compressed;
559 };
560 
561 /* List of names for dward2 debugging sections. Also most object file formats
562  use the standardized (ie ELF) names, some (eg XCOFF) have customized names
563  due to restrictions.
564  The table for the standard names is defined in dwarf2read.c. Please
565  update all instances of dwarf2_debug_sections if you add a field to this
566  structure. It is always safe to use { NULL, NULL } in this case. */
567 
587  /* This field has no meaning, but exists solely to catch changes to
588  this structure which are not reflected in some instance. */
589  int sentinel;
590 };
591 
592 extern int dwarf2_has_info (struct objfile *,
593  const struct dwarf2_debug_sections *);
594 
595 /* Dwarf2 sections that can be accessed by dwarf2_get_section_info. */
599 };
600 
601 extern void dwarf2_get_section_info (struct objfile *,
602  enum dwarf2_section_enum,
603  asection **, const gdb_byte **,
604  bfd_size_type *);
605 
606 /* A DWARF names index variant. */
607 enum class dw_index_kind
608 {
609  /* GDB's own .gdb_index format. */
610  GDB_INDEX,
611 
612  /* DWARF5 .debug_names. */
613  DEBUG_NAMES,
614 };
615 
616 /* Initialize for reading DWARF for OBJFILE. Return false if this
617  file will use psymtabs, or true if using an index, in which case
618  *INDEX_KIND is set to the index variant in use. */
619 extern bool dwarf2_initialize_objfile (struct objfile *objfile,
620  dw_index_kind *index_kind);
621 
622 extern void dwarf2_build_psymtabs (struct objfile *);
623 extern void dwarf2_build_frame_info (struct objfile *);
624 
625 void dwarf2_free_objfile (struct objfile *);
626 
627 /* From mdebugread.c */
628 
630  struct objfile *,
631  const struct ecoff_debug_swap *,
632  struct ecoff_debug_info *);
633 
634 extern void elfmdebug_build_psymtabs (struct objfile *,
635  const struct ecoff_debug_swap *,
636  asection *);
637 
638 /* From minidebug.c. */
639 
641 
642 /* True if we are printing debug output about separate debug info files. */
643 
644 extern int separate_debug_file_debug;
645 
646 #endif /* !defined(SYMFILE_H) */
void(* expand_symtabs_matching)(struct objfile *objfile, gdb::function_view< expand_symtabs_file_matcher_ftype > file_matcher, const lookup_name_info &lookup_name, gdb::function_view< expand_symtabs_symbol_matcher_ftype > symbol_matcher, gdb::function_view< expand_symtabs_exp_notify_ftype > expansion_notify, enum search_domain kind)
Definition: symfile.h:256
Definition: probe.h:112
char * name
Definition: symfile.h:51
void() expand_symtabs_exp_notify_ftype(compunit_symtab *symtab)
Definition: symfile.h:117
void mdebug_build_psymtabs(minimal_symbol_reader &, struct objfile *, const struct ecoff_debug_swap *, struct ecoff_debug_info *)
Definition: mdebugread.c:338
void dwarf2_get_section_info(struct objfile *, enum dwarf2_section_enum, asection **, const gdb_byte **, bfd_size_type *)
Definition: dwarf2read.c:2771
char * find_separate_debug_file_by_debuglink(struct objfile *)
Definition: symfile.c:1551
void(* forget_cached_source_info)(struct objfile *objfile)
Definition: symfile.h:148
CORE_ADDR overlay_mapped_address(CORE_ADDR, struct obj_section *)
Definition: symfile.c:3125
struct dwarf2_section_names types
Definition: symfile.h:580
void clear_symtab_users(symfile_add_flags add_flags)
Definition: symfile.c:2885
bfd_vma CORE_ADDR
Definition: common-types.h:41
struct dwarf2_section_names macinfo
Definition: symfile.h:574
struct symtab * allocate_symtab(struct compunit_symtab *, const char *) ATTRIBUTE_NONNULL(1)
Definition: symfile.c:2785
void simple_overlay_update(struct obj_section *)
Definition: symfile.c:3559
CORE_ADDR pc_in_mapped_range(CORE_ADDR, struct obj_section *)
Definition: symfile.c:3076
CORE_ADDR * segment_bases
Definition: symfile.h:85
bool(* map_symtabs_matching_filename)(struct objfile *objfile, const char *name, const char *real_path, gdb::function_view< bool(symtab *)> callback)
Definition: symfile.h:163
struct dwarf2_section_names gdb_index
Definition: symfile.h:584
enum domain_enum_tag domain_enum
void relative_addr_info_to_section_offsets(struct section_offsets *section_offsets, int num_sections, const struct section_addr_info *addrs)
Definition: symfile.c:464
int auto_solib_add
Definition: symfile.c:149
int sectindex
Definition: symfile.h:54
void(* expand_symtabs_with_fullname)(struct objfile *objfile, const char *fullname)
Definition: symfile.h:208
void dwarf2_build_psymtabs(struct objfile *)
Definition: dwarf2read.c:6519
void default_symfile_offsets(struct objfile *objfile, const struct section_addr_info *)
Definition: symfile.c:695
struct objfile * symbol_file_add(const char *, symfile_add_flags, struct section_addr_info *, objfile_flags)
Definition: symfile.c:1270
void(* print_stats)(struct objfile *objfile)
Definition: symfile.h:183
void symbol_file_clear(int from_tty)
Definition: symfile.c:1310
Definition: ax.h:83
bfd_byte * default_symfile_relocate(struct objfile *objfile, asection *sectp, bfd_byte *buf)
Definition: symfile.c:3625
struct compunit_symtab * allocate_compunit_symtab(struct objfile *, const char *) ATTRIBUTE_NONNULL(1)
Definition: symfile.c:2842
search_domain
Definition: symtab.h:773
void set_initial_language(void)
Definition: symfile.c:1690
dwarf2_section_enum
Definition: symfile.h:596
bool dwarf2_initialize_objfile(struct objfile *objfile, dw_index_kind *index_kind)
Definition: dwarf2read.c:6467
int() symbol_compare_ftype(const char *string1, const char *string2)
Definition: symfile.h:45
void free_symfile_segment_data(struct symfile_segment_data *data)
Definition: symfile.c:3679
struct symfile_segment_data * get_symfile_segment_data(bfd *abfd)
Definition: symfile.c:3668
dw_index_kind
Definition: symfile.h:607
struct dwarf2_section_names abbrev
Definition: symfile.h:570
CORE_ADDR addr
Definition: symfile.h:50
const struct sym_probe_fns * sym_probe_fns
Definition: symfile.h:365
bfd_byte * symfile_relocate_debug_section(struct objfile *, asection *, bfd_byte *)
Definition: symfile.c:3659
const char *const name
Definition: aarch64-tdep.c:76
bool() expand_symtabs_file_matcher_ftype(const char *filename, bool basenames)
Definition: symfile.h:106
struct dwarf2_section_names rnglists
Definition: symfile.h:579
void dwarf2_free_objfile(struct objfile *)
Definition: dwarf2read.c:25113
struct section_addr_info * alloc_section_addr_info(size_t num_sections)
Definition: symfile.c:223
struct obj_section * find_pc_mapped_section(CORE_ADDR)
Definition: symfile.c:3202
int overlay_cache_invalid
Definition: symfile.c:2971
void add_symtab_fns(enum bfd_flavour flavour, const struct sym_fns *)
Definition: symfile.c:1790
scoped_restore_tmpl< int > increment_reading_symtab(void)
Definition: symfile.c:185
objfile(bfd *, const char *, objfile_flags)
Definition: objfiles.c:373
void elfmdebug_build_psymtabs(struct objfile *, const struct ecoff_debug_swap *, asection *)
Definition: mdebugread.c:4868
int print_symbol_loading_p(int from_tty, int mainline, int full)
Definition: symfile.c:161
struct symfile_segment_data * default_symfile_segments(bfd *abfd)
Definition: symfile.c:785
void add_compunit_symtab_to_objfile(struct compunit_symtab *cu)
Definition: symfile.c:2874
bool() expand_symtabs_symbol_matcher_ftype(const char *name)
Definition: symfile.h:112
void(* sym_new_init)(struct objfile *)
Definition: symfile.h:308
struct dwarf2_section_names line
Definition: symfile.h:571
void(* dump)(struct objfile *objfile)
Definition: symfile.h:187
void(* expand_all_symtabs)(struct objfile *objfile)
Definition: symfile.h:201
struct dwarf2_section_names loclists
Definition: symfile.h:573
struct dwarf2_section_names info
Definition: symfile.h:569
struct dwarf2_section_names frame
Definition: symfile.h:582
struct dwarf2_section_names loc
Definition: symfile.h:572
void(* expand_symtabs_for_function)(struct objfile *objfile, const char *func_name)
Definition: symfile.h:197
void(* sym_offsets)(struct objfile *, const struct section_addr_info *)
Definition: symfile.h:343
void(* sym_finish)(struct objfile *)
Definition: symfile.h:334
struct dwarf2_section_names macro
Definition: symfile.h:575
void(* relocate)(struct objfile *objfile, const struct section_offsets *new_offsets, const struct section_offsets *delta)
Definition: symfile.h:191
const char * normal
Definition: symfile.h:557
void(* sym_read_psymbols)(struct objfile *)
Definition: symfile.h:328
struct obj_section * find_pc_overlay(CORE_ADDR)
Definition: symfile.c:3173
Definition: block.h:60
Definition: value.c:169
int separate_debug_file_debug
Definition: symfile.c:1333
size_t num_sections
Definition: symfile.h:68
struct dwarf2_section_names eh_frame
Definition: symfile.h:583
int section_is_overlay(struct obj_section *)
Definition: symfile.c:2978
gdb_bfd_ref_ptr find_separate_debug_file_in_section(struct objfile *)
Definition: minidebug.c:259
bfd_byte gdb_byte
Definition: common-types.h:38
CORE_ADDR symbol_overlayed_address(CORE_ADDR, struct obj_section *)
Definition: symfile.c:3143
struct dwarf2_section_names debug_aranges
Definition: symfile.h:586
struct dwarf2_section_names addr
Definition: symfile.h:581
void(* sym_read_linetable)(struct objfile *)
Definition: symfile.h:355
struct dwarf2_section_names line_str
Definition: symfile.h:577
struct objfile * symbol_file_add_from_bfd(bfd *, const char *, symfile_add_flags, struct section_addr_info *, objfile_flags, struct objfile *parent)
Definition: symfile.c:1257
void find_lowest_section(bfd *, asection *, void *)
Definition: symfile.c:202
struct dwarf2_section_names ranges
Definition: symfile.h:578
void free_section_addr_info(struct section_addr_info *)
Definition: symfile.c:317
void symbol_file_add_separate(bfd *, const char *, symfile_add_flags, struct objfile *)
Definition: symfile.c:1230
int symfile_map_offsets_to_segments(bfd *, const struct symfile_segment_data *, struct section_offsets *, int, const CORE_ADDR *)
Definition: symfile.c:3703
CORE_ADDR pc_in_unmapped_range(CORE_ADDR, struct obj_section *)
Definition: symfile.c:3053
void add_filename_language(const char *ext, enum language lang)
Definition: symfile.c:2680
gdb_bfd_ref_ptr symfile_bfd_open(const char *)
Definition: symfile.c:1719
struct section_addr_info * build_section_addr_info_from_objfile(const struct objfile *objfile)
Definition: symfile.c:296
struct other_sections other[1]
Definition: symfile.h:70
void addr_info_make_relative(struct section_addr_info *addrs, bfd *abfd)
Definition: symfile.c:547
void symbol_file_add_main(const char *args, symfile_add_flags add_flags)
Definition: symfile.c:1288
language
Definition: defs.h:203
void(* map_matching_symbols)(struct objfile *, const char *name, domain_enum domain, int global, int(*callback)(struct block *, struct symbol *, void *), void *data, symbol_name_match_type match, symbol_compare_ftype *ordered_compare)
Definition: symfile.h:228
CORE_ADDR overlay_unmapped_address(CORE_ADDR, struct obj_section *)
Definition: symfile.c:3107
enum language deduce_language_from_filename(const char *)
Definition: symfile.c:2766
void dwarf2_build_frame_info(struct objfile *)
const char * compressed
Definition: symfile.h:558
struct section_addr_info * build_section_addr_info_from_section_table(const struct target_section *start, const struct target_section *end)
Definition: symfile.c:240
void(* sym_init)(struct objfile *)
Definition: symfile.h:314
const struct quick_symbol_functions * qf
Definition: symfile.h:369
void map_symbol_filenames(symbol_filename_ftype *fun, void *data, int need_fullname)
Definition: symfile.c:3826
int(* has_symbols)(struct objfile *objfile)
Definition: symfile.h:141
int section_is_mapped(struct obj_section *)
Definition: symfile.c:3017
CORE_ADDR * segment_sizes
Definition: symfile.h:89
struct dwarf2_section_names str
Definition: symfile.h:576
int get_section_index(struct objfile *, const char *)
Definition: symfile.c:1773
int dwarf2_has_info(struct objfile *, const struct dwarf2_debug_sections *)
Definition: dwarf2read.c:2424
overlay_debugging_state
Definition: symfile.h:478
symbol_name_match_type
Definition: symtab.h:52
void(* sym_read)(struct objfile *, symfile_add_flags)
Definition: symfile.h:321
enum overlay_debugging_state overlay_debugging
void expand_symtabs_matching(gdb::function_view< expand_symtabs_file_matcher_ftype > file_matcher, const lookup_name_info &lookup_name, gdb::function_view< expand_symtabs_symbol_matcher_ftype > symbol_matcher, gdb::function_view< expand_symtabs_exp_notify_ftype > expansion_notify, enum search_domain kind)
Definition: symfile.c:3803
void(* map_symbol_filenames)(struct objfile *objfile, symbol_filename_ftype *fun, void *data, int need_fullname)
Definition: symfile.h:285
void() symbol_filename_ftype(const char *filename, const char *fullname, void *data)
Definition: symfile.h:100