diff options
Diffstat (limited to 'gdb/dwarf2/read.h')
-rw-r--r-- | gdb/dwarf2/read.h | 37 |
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 */ |