| //===-- SymbolFileBreakpad.h ------------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLDB_PLUGINS_SYMBOLFILE_BREAKPAD_SYMBOLFILEBREAKPAD_H |
| #define LLDB_PLUGINS_SYMBOLFILE_BREAKPAD_SYMBOLFILEBREAKPAD_H |
| |
| #include "lldb/Symbol/SymbolFile.h" |
| |
| namespace lldb_private { |
| |
| namespace breakpad { |
| |
| class SymbolFileBreakpad : public SymbolFile { |
| public: |
| //------------------------------------------------------------------ |
| // Static Functions |
| //------------------------------------------------------------------ |
| static void Initialize(); |
| static void Terminate(); |
| static void DebuggerInitialize(Debugger &debugger) {} |
| static ConstString GetPluginNameStatic(); |
| |
| static const char *GetPluginDescriptionStatic() { |
| return "Breakpad debug symbol file reader."; |
| } |
| |
| static SymbolFile *CreateInstance(ObjectFile *obj_file) { |
| return new SymbolFileBreakpad(obj_file); |
| } |
| |
| //------------------------------------------------------------------ |
| // Constructors and Destructors |
| //------------------------------------------------------------------ |
| SymbolFileBreakpad(ObjectFile *object_file) : SymbolFile(object_file) {} |
| |
| ~SymbolFileBreakpad() override {} |
| |
| uint32_t CalculateAbilities() override; |
| |
| void InitializeObject() override {} |
| |
| //------------------------------------------------------------------ |
| // Compile Unit function calls |
| //------------------------------------------------------------------ |
| |
| uint32_t GetNumCompileUnits() override; |
| |
| lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t index) override; |
| |
| lldb::LanguageType ParseLanguage(CompileUnit &comp_unit) override { |
| return lldb::eLanguageTypeUnknown; |
| } |
| |
| size_t ParseFunctions(CompileUnit &comp_unit) override; |
| |
| bool ParseLineTable(CompileUnit &comp_unit) override; |
| |
| bool ParseDebugMacros(CompileUnit &comp_unit) override { return false; } |
| |
| bool ParseSupportFiles(CompileUnit &comp_unit, |
| FileSpecList &support_files) override { |
| return false; |
| } |
| size_t ParseTypes(CompileUnit &cu) override { return 0; } |
| |
| bool |
| ParseImportedModules(const SymbolContext &sc, |
| std::vector<ConstString> &imported_modules) override { |
| return false; |
| } |
| |
| size_t ParseFunctionBlocks(const SymbolContext &sc) override { return 0; } |
| |
| uint32_t FindGlobalVariables(const ConstString &name, |
| const CompilerDeclContext *parent_decl_ctx, |
| uint32_t max_matches, |
| VariableList &variables) override { |
| return 0; |
| } |
| |
| size_t ParseVariablesForContext(const SymbolContext &sc) override { |
| return 0; |
| } |
| Type *ResolveTypeUID(lldb::user_id_t type_uid) override { return nullptr; } |
| llvm::Optional<ArrayInfo> GetDynamicArrayInfoForUID( |
| lldb::user_id_t type_uid, |
| const lldb_private::ExecutionContext *exe_ctx) override { |
| return llvm::None; |
| } |
| |
| bool CompleteType(CompilerType &compiler_type) override { return false; } |
| uint32_t ResolveSymbolContext(const Address &so_addr, |
| lldb::SymbolContextItem resolve_scope, |
| SymbolContext &sc) override; |
| |
| size_t GetTypes(SymbolContextScope *sc_scope, lldb::TypeClass type_mask, |
| TypeList &type_list) override { |
| return 0; |
| } |
| |
| uint32_t FindFunctions(const ConstString &name, |
| const CompilerDeclContext *parent_decl_ctx, |
| lldb::FunctionNameType name_type_mask, |
| bool include_inlines, bool append, |
| SymbolContextList &sc_list) override; |
| |
| uint32_t FindFunctions(const RegularExpression ®ex, bool include_inlines, |
| bool append, SymbolContextList &sc_list) override; |
| |
| uint32_t FindTypes(const SymbolContext &sc, const ConstString &name, |
| const CompilerDeclContext *parent_decl_ctx, bool append, |
| uint32_t max_matches, |
| llvm::DenseSet<SymbolFile *> &searched_symbol_files, |
| TypeMap &types) override; |
| |
| size_t FindTypes(const std::vector<CompilerContext> &context, bool append, |
| TypeMap &types) override; |
| |
| TypeSystem *GetTypeSystemForLanguage(lldb::LanguageType language) override { |
| return nullptr; |
| } |
| |
| CompilerDeclContext |
| FindNamespace(const SymbolContext &sc, const ConstString &name, |
| const CompilerDeclContext *parent_decl_ctx) override { |
| return CompilerDeclContext(); |
| } |
| |
| void AddSymbols(Symtab &symtab) override; |
| |
| ConstString GetPluginName() override { return GetPluginNameStatic(); } |
| uint32_t GetPluginVersion() override { return 1; } |
| |
| private: |
| }; |
| |
| } // namespace breakpad |
| } // namespace lldb_private |
| |
| #endif |