Introduce dwarf2/public.h

This moves some more DWARF code out of symfile.h and into a new
header, dwarf2/public.h.  This header is intended to describe the
public API of the DWARF reader.

gdb/ChangeLog
2021-03-20  Tom Tromey  <tom@tromey.com>

	* coffread.c: Include dwarf2/public.h.
	* dwarf2/frame.c: Include dwarf2/public.h.
	* dwarf2/index-write.h: Include dwarf2/public.h, not symfile.h.
	* dwarf2/public.h: New file.
	* dwarf2/read.c: Include dwarf2/public.h.
	* elfread.c: Include dwarf2/public.h.
	* machoread.c: Include dwarf2/public.h.
	* symfile.h (dwarf2_has_info, enum dw_index_kind)
	(dwarf2_initialize_objfile, dwarf2_build_psymtabs)
	(dwarf2_build_frame_info): Move to dwarf2/public.h.
	* xcoffread.c: Include dwarf2/public.h.
This commit is contained in:
Tom Tromey 2021-03-20 17:23:40 -06:00
parent 18038e6363
commit 701823751b
10 changed files with 67 additions and 27 deletions

View File

@ -1,3 +1,17 @@
2021-03-20 Tom Tromey <tom@tromey.com>
* coffread.c: Include dwarf2/public.h.
* dwarf2/frame.c: Include dwarf2/public.h.
* dwarf2/index-write.h: Include dwarf2/public.h, not symfile.h.
* dwarf2/public.h: New file.
* dwarf2/read.c: Include dwarf2/public.h.
* elfread.c: Include dwarf2/public.h.
* machoread.c: Include dwarf2/public.h.
* symfile.h (dwarf2_has_info, enum dw_index_kind)
(dwarf2_initialize_objfile, dwarf2_build_psymtabs)
(dwarf2_build_frame_info): Move to dwarf2/public.h.
* xcoffread.c: Include dwarf2/public.h.
2021-03-20 Tom Tromey <tom@tromey.com>
* symfile.h (enum dwarf2_section_enum)

View File

@ -36,6 +36,7 @@
#include "target.h"
#include "block.h"
#include "dictionary.h"
#include "dwarf2/public.h"
#include "coff-pe-read.h"

View File

@ -37,6 +37,7 @@
#include "complaints.h"
#include "dwarf2/frame.h"
#include "dwarf2/read.h"
#include "dwarf2/public.h"
#include "ax.h"
#include "dwarf2/loc.h"
#include "dwarf2/frame-tailcall.h"

View File

@ -20,8 +20,8 @@
#ifndef DWARF_INDEX_WRITE_H
#define DWARF_INDEX_WRITE_H
#include "symfile.h"
#include "dwarf2/read.h"
#include "dwarf2/public.h"
/* Create index files for OBJFILE in the directory DIR.

46
gdb/dwarf2/public.h Normal file
View File

@ -0,0 +1,46 @@
/* Public API for gdb DWARF reader
Copyright (C) 2021 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef DWARF2_PUBLIC_H
#define DWARF2_PUBLIC_H
extern int dwarf2_has_info (struct objfile *,
const struct dwarf2_debug_sections *,
bool = false);
/* A DWARF names index variant. */
enum class dw_index_kind
{
/* GDB's own .gdb_index format. */
GDB_INDEX,
/* DWARF5 .debug_names. */
DEBUG_NAMES,
};
/* Initialize for reading DWARF for OBJFILE. Return false if this
file will use psymtabs, or true if using an index, in which case
*INDEX_KIND is set to the index variant in use. */
extern bool dwarf2_initialize_objfile (struct objfile *objfile,
dw_index_kind *index_kind);
extern void dwarf2_build_psymtabs (struct objfile *);
extern void dwarf2_build_frame_info (struct objfile *);
#endif /* DWARF2_PUBLIC_H */

View File

@ -42,6 +42,7 @@
#include "dwarf2/die.h"
#include "dwarf2/sect-names.h"
#include "dwarf2/stringify.h"
#include "dwarf2/public.h"
#include "bfd.h"
#include "elf-bfd.h"
#include "symtab.h"

View File

@ -51,6 +51,7 @@
#include "gdbsupport/gdb_string_view.h"
#include "gdbsupport/scoped_fd.h"
#include "debuginfod-support.h"
#include "dwarf2/public.h"
/* Forward declarations. */
extern const struct sym_fns elf_sym_fns_gdb_index;

View File

@ -32,6 +32,7 @@
#include "gdb_bfd.h"
#include <string>
#include <algorithm>
#include "dwarf2/public.h"
/* If non-zero displays debugging message. */
static unsigned int mach_o_debug_level = 0;

View File

@ -552,32 +552,6 @@ void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
optional offset to apply to each section. */
extern void generic_load (const char *args, int from_tty);
/* From dwarf2read.c */
struct dwarf2_debug_sections;
extern int dwarf2_has_info (struct objfile *,
const struct dwarf2_debug_sections *,
bool = false);
/* A DWARF names index variant. */
enum class dw_index_kind
{
/* GDB's own .gdb_index format. */
GDB_INDEX,
/* DWARF5 .debug_names. */
DEBUG_NAMES,
};
/* Initialize for reading DWARF for OBJFILE. Return false if this
file will use psymtabs, or true if using an index, in which case
*INDEX_KIND is set to the index variant in use. */
extern bool dwarf2_initialize_objfile (struct objfile *objfile,
dw_index_kind *index_kind);
extern void dwarf2_build_psymtabs (struct objfile *);
extern void dwarf2_build_frame_info (struct objfile *);
/* From minidebug.c. */
extern gdb_bfd_ref_ptr find_separate_debug_file_in_section (struct objfile *);

View File

@ -48,6 +48,7 @@
#include "complaints.h"
#include "psympriv.h"
#include "dwarf2/sect-names.h"
#include "dwarf2/public.h"
#include "gdb-stabs.h"