diff options
Diffstat (limited to 'gdb/dwarf2/cooked-index.h')
-rw-r--r-- | gdb/dwarf2/cooked-index.h | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/gdb/dwarf2/cooked-index.h b/gdb/dwarf2/cooked-index.h index 1848798..43b2723 100644 --- a/gdb/dwarf2/cooked-index.h +++ b/gdb/dwarf2/cooked-index.h @@ -1,6 +1,6 @@ /* DIE indexing - Copyright (C) 2022-2024 Free Software Foundation, Inc. + Copyright (C) 2022-2025 Free Software Foundation, Inc. This file is part of GDB. @@ -20,19 +20,14 @@ #ifndef GDB_DWARF2_COOKED_INDEX_H #define GDB_DWARF2_COOKED_INDEX_H -#include "dwarf2.h" #include "dwarf2/cooked-index-entry.h" -#include "dwarf2/types.h" #include "symtab.h" -#include "hashtab.h" #include "quick-symbol.h" -#include "gdbsupport/gdb_obstack.h" #include "addrmap.h" #include "dwarf2/mapped-index.h" #include "dwarf2/read.h" #include "dwarf2/parent-map.h" #include "gdbsupport/range-chain.h" -#include "complaints.h" #include "dwarf2/cooked-index-shard.h" #include "dwarf2/cooked-index-worker.h" @@ -46,6 +41,14 @@ possible. This combination should help hide the effort from the user to the maximum possible degree. + There are a number of different objects involved in this process. + Most of them are temporary -- they are created to handle different + phases of scanning, then discarded when possible. The "steady + state" objects are index itself (cooked_index, below), which holds + the entries (cooked_index_entry), and the implementation of the + "quick" API (e.g., cooked_index_functions, though there are + other variants). + . Main Thread | Worker Threads ============================================================ . dwarf2_initialize_objfile @@ -77,6 +80,7 @@ . v . maybe write to index cache . state = CACHE_DONE + . ~cooked_index_worker . . . if main thread calls... @@ -101,14 +105,8 @@ public: void start_reading () override; /* Called by cooked_index_worker to set the contents of this index - and transition to the MAIN_AVAILABLE state. WARN is used to - collect any warnings that may arise when writing to the cache. - PARENT_MAPS is used when resolving pending parent links. - PARENT_MAPS may be NULL if there are no IS_PARENT_DEFERRED - entries in VEC. */ - void set_contents (std::vector<cooked_index_shard_up> &&vec, - deferred_warnings *warn, - const parent_map_map *parent_maps); + and transition to the MAIN_AVAILABLE state. */ + void set_contents (); /* A range over a vector of subranges. */ using range = range_chain<cooked_index_shard::range>; |