diff options
author | Tom Tromey <tom@tromey.com> | 2021-03-20 17:23:40 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2021-03-20 17:23:40 -0600 |
commit | 701823751bec1bbf2f1c96463994f894d33d2238 (patch) | |
tree | ae4422b4724505c1bcb6f977d278786494fcd903 /gdb/dwarf2 | |
parent | 18038e6363e934634a45c6671b4808310a0035bb (diff) | |
download | gdb-701823751bec1bbf2f1c96463994f894d33d2238.zip gdb-701823751bec1bbf2f1c96463994f894d33d2238.tar.gz gdb-701823751bec1bbf2f1c96463994f894d33d2238.tar.bz2 |
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.
Diffstat (limited to 'gdb/dwarf2')
-rw-r--r-- | gdb/dwarf2/frame.c | 1 | ||||
-rw-r--r-- | gdb/dwarf2/index-write.h | 2 | ||||
-rw-r--r-- | gdb/dwarf2/public.h | 46 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 1 |
4 files changed, 49 insertions, 1 deletions
diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c index 4d62b19..f8612c9 100644 --- a/gdb/dwarf2/frame.c +++ b/gdb/dwarf2/frame.c @@ -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" diff --git a/gdb/dwarf2/index-write.h b/gdb/dwarf2/index-write.h index 5f6761c..27f1f03 100644 --- a/gdb/dwarf2/index-write.h +++ b/gdb/dwarf2/index-write.h @@ -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. diff --git a/gdb/dwarf2/public.h b/gdb/dwarf2/public.h new file mode 100644 index 0000000..d0182d4 --- /dev/null +++ b/gdb/dwarf2/public.h @@ -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 */ diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index d688130..4d6d87b 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -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" |