aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2/read.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/dwarf2/read.h')
-rw-r--r--gdb/dwarf2/read.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h
index 10cb1ee..617c093 100644
--- a/gdb/dwarf2/read.h
+++ b/gdb/dwarf2/read.h
@@ -33,6 +33,7 @@
#include "gdbsupport/hash_enum.h"
#include "gdbsupport/function-view.h"
#include "gdbsupport/packed.h"
+#include "dwarf2/line-header.h"
/* Hold 'maintenance (set|show) dwarf' commands. */
extern struct cmd_list_element *set_dwarf_cmdlist;
@@ -942,4 +943,40 @@ extern htab_up create_quick_file_names_table (unsigned int nr_initial_entries);
extern void read_full_dwarf_from_debuginfod (struct objfile *,
dwarf2_base_index_functions *);
+struct mapped_debug_line
+{
+ mapped_debug_line (objfile *objfile);
+
+ /* Return true if any of the mapped .debug_line's filenames match
+ FILE_MATCHER. */
+
+ bool contains_matching_filename
+ (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher);
+
+ /* Call FUN with each filename in this mapped .debug_line. Include
+ each file's fullname if NEED_FULLNAME is true. */
+
+ void map_filenames (gdb::function_view<symbol_filename_ftype> fun,
+ bool need_fullname);
+
+private:
+ std::vector<line_header_up> line_headers;
+
+ gdb::array_view<const gdb_byte> line_data;
+ gdb::array_view<const gdb_byte> line_str_data;
+
+ std::unique_ptr<index_cache_resource> line_resource;
+ std::unique_ptr<index_cache_resource> line_str_resource;
+
+ /* Download the .debug_line and .debug_line_str associated with OBJFILE
+ and populate line_headers. */
+
+ bool read_debug_line_from_debuginfod (objfile *objfile);
+
+ /* Initialize line_data and line_str_data with the .debug_line and
+ .debug_line_str downloaded read_debug_line_from_debuginfod. */
+
+ gdb::array_view<const gdb_byte> read_debug_line_separate
+ (const char *filename, std::unique_ptr<index_cache_resource> *resource);
+};
#endif /* DWARF2READ_H */