/* Build symbol tables in GDB's internal format - legacy APIs
- Copyright (C) 1986-2018 Free Software Foundation, Inc.
+ Copyright (C) 1986-2022 Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#if !defined (LEGACY_BUILDSYM_H)
-#define LEGACY_BUILDSYM_H 1
+#ifndef BUILDSYM_LEGACY_H
+#define BUILDSYM_LEGACY_H
#include "buildsym.h"
The basic way this module is used is as follows:
scoped_free_pendings free_pending;
- cust = start_symtab (...);
+ cust = start_compunit_symtab (...);
... read debug info ...
- cust = end_symtab (...);
+ cust = end_compunit_symtab (...);
- The compunit symtab pointer ("cust") is returned from both start_symtab
- and end_symtab to simplify the debug info readers.
-
- There are minor variations on this, e.g., dwarf2read.c splits end_symtab
- into two calls: end_symtab_get_static_block, end_symtab_from_static_block,
- but all debug info readers follow this basic flow.
-
- Reading DWARF Type Units is another variation:
-
- scoped_free_pendings free_pending;
- cust = start_symtab (...);
- ... read debug info ...
- cust = end_expandable_symtab (...);
-
- And then reading subsequent Type Units within the containing "Comp Unit"
- will use a second flow:
-
- scoped_free_pendings free_pending;
- cust = restart_symtab (...);
- ... read debug info ...
- cust = augment_type_symtab (...);
+ The compunit symtab pointer ("cust") is returned from both
+ start_compunit_symtab and end_compunit_symtab to simplify the debug info readers.
dbxread.c and xcoffread.c use another variation:
scoped_free_pendings free_pending;
- cust = start_symtab (...);
+ cust = start_compunit_symtab (...);
... read debug info ...
- cust = end_symtab (...);
- ... start_symtab + read + end_symtab repeated ...
+ cust = end_compunit_symtab (...);
+ ... start_compunit_symtab + read + end_compunit_symtab repeated ...
*/
class scoped_free_pendings
CORE_ADDR start,
CORE_ADDR end);
-extern void record_block_range (struct block *,
- CORE_ADDR start, CORE_ADDR end_inclusive);
-
extern void start_subfile (const char *name);
extern void patch_subfile_names (struct subfile *subfile, const char *name);
extern const char *pop_subfile ();
-extern struct block *end_symtab_get_static_block (CORE_ADDR end_addr,
- int expandable,
- int required);
-
-extern struct compunit_symtab *
- end_symtab_from_static_block (struct block *static_block,
- int section, int expandable);
-
-extern struct compunit_symtab *end_symtab (CORE_ADDR end_addr, int section);
-
-extern struct compunit_symtab *end_expandable_symtab (CORE_ADDR end_addr,
- int section);
-
-extern void augment_type_symtab (void);
+extern struct compunit_symtab *end_compunit_symtab (CORE_ADDR end_addr,
+ int section);
extern struct context_stack *push_context (int desc, CORE_ADDR valu);
extern struct context_stack pop_context ();
-extern record_line_ftype record_line;
-
-extern struct compunit_symtab *start_symtab (struct objfile *objfile,
- const char *name,
- const char *comp_dir,
- CORE_ADDR start_addr,
- enum language language);
+extern void record_line (struct subfile *subfile, int line, CORE_ADDR pc);
-extern void restart_symtab (struct compunit_symtab *cust,
- const char *name, CORE_ADDR start_addr);
+extern struct compunit_symtab *start_compunit_symtab (struct objfile *objfile,
+ const char *name,
+ const char *comp_dir,
+ CORE_ADDR start_addr,
+ enum language language);
/* Record the name of the debug format in the current pending symbol
table. FORMAT must be a string with a lifetime at least as long as
extern const char *get_last_source_file (void);
-/* Return the compunit symtab object.
- It is only valid to call this between calls to start_symtab and the
- end_symtab* functions. */
-
-extern struct compunit_symtab *buildsym_compunit_symtab (void);
-
-/* Return the macro table.
- Initialize it if this is the first use.
- It is only valid to call this between calls to start_symtab and the
- end_symtab* functions. */
-
-extern struct macro_table *get_macro_table (void);
-
/* Set the last source start address. Can only be used between
- start_symtab and end_symtab* calls. */
+ start_compunit_symtab and end_compunit_symtab* calls. */
extern void set_last_source_start_addr (CORE_ADDR addr);
/* Get the last source start address. Can only be used between
- start_symtab and end_symtab* calls. */
+ start_compunit_symtab and end_compunit_symtab* calls. */
extern CORE_ADDR get_last_source_start_addr ();
-/* Return the local using directives. */
-
-extern struct using_direct **get_local_using_directives ();
-
-/* Set the list of local using directives. */
-
-extern void set_local_using_directives (struct using_direct *new_local);
-
-/* Return the global using directives. */
-
-extern struct using_direct **get_global_using_directives ();
-
/* True if the context stack is empty. */
extern bool outermost_context_p ();
-/* Return the top of the context stack, or nullptr if there is an
- entry. */
-
-extern struct context_stack *get_current_context_stack ();
-
/* Return the context stack depth. */
extern int get_context_stack_depth ();
extern struct pending **get_global_symbols ();
-#endif /* defined (LEGACY_BUILDSYM_H) */
+/* Return the current buildsym_compunit. */
+
+extern struct buildsym_compunit *get_buildsym_compunit ();
+
+#endif /* BUILDSYM_LEGACY_H */