diff options
Diffstat (limited to 'gdb/psympriv.h')
-rw-r--r-- | gdb/psympriv.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/psympriv.h b/gdb/psympriv.h index 943d6c1..b1b8027 100644 --- a/gdb/psympriv.h +++ b/gdb/psympriv.h @@ -476,6 +476,11 @@ class psymtab_discarder partial symbols. */ struct psymbol_functions : public quick_symbol_functions { + explicit psymbol_functions (const std::shared_ptr<psymtab_storage> &storage) + : m_partial_symtabs (storage) + { + } + bool has_symbols (struct objfile *objfile) override; struct symtab *find_last_source_symtab (struct objfile *objfile) override; @@ -540,6 +545,13 @@ struct psymbol_functions : public quick_symbol_functions m_psymbol_map.clear (); } + /* Replace the partial symbol table storage in this object with + SYMS. */ + void set_partial_symtabs (const std::shared_ptr<psymtab_storage> &syms) + { + m_partial_symtabs = syms; + } + private: void fill_psymbol_map (struct objfile *objfile, @@ -547,6 +559,9 @@ private: std::set<CORE_ADDR> *seen_addrs, const std::vector<partial_symbol *> &symbols); + /* Storage for the partial symbols. */ + std::shared_ptr<psymtab_storage> m_partial_symtabs; + /* Map symbol addresses to the partial symtab that defines the object at that address. */ |