diff options
Diffstat (limited to 'include/lldb/Target/Target.h')
-rw-r--r-- | include/lldb/Target/Target.h | 67 |
1 files changed, 60 insertions, 7 deletions
diff --git a/include/lldb/Target/Target.h b/include/lldb/Target/Target.h index 0cdb248a9b44..7124b2e83467 100644 --- a/include/lldb/Target/Target.h +++ b/include/lldb/Target/Target.h @@ -53,9 +53,22 @@ typedef enum LoadScriptFromSymFile eLoadScriptFromSymFileWarn } LoadScriptFromSymFile; +typedef enum LoadCWDlldbinitFile +{ + eLoadCWDlldbinitTrue, + eLoadCWDlldbinitFalse, + eLoadCWDlldbinitWarn +} LoadCWDlldbinitFile; + //---------------------------------------------------------------------- // TargetProperties //---------------------------------------------------------------------- +class TargetExperimentalProperties : public Properties +{ +public: + TargetExperimentalProperties(); +}; + class TargetProperties : public Properties { public: @@ -142,6 +155,12 @@ public: GetEnableAutoImportClangModules () const; bool + GetEnableAutoApplyFixIts () const; + + bool + GetEnableNotifyAboutFixIts () const; + + bool GetEnableSyntheticValue () const; uint32_t @@ -192,6 +211,9 @@ public: LoadScriptFromSymFile GetLoadScriptFromSymbolFile() const; + LoadCWDlldbinitFile + GetLoadCWDlldbinitFile () const; + Disassembler::HexImmediateStyle GetHexImmediateStyle() const; @@ -221,6 +243,12 @@ public: void SetProcessLaunchInfo(const ProcessLaunchInfo &launch_info); + + bool + GetInjectLocalVariables(ExecutionContext *exe_ctx) const; + + void + SetInjectLocalVariables(ExecutionContext *exe_ctx, bool b); private: //------------------------------------------------------------------ @@ -241,14 +269,17 @@ private: // Member variables. //------------------------------------------------------------------ ProcessLaunchInfo m_launch_info; + std::unique_ptr<TargetExperimentalProperties> m_experimental_properties_up; }; class EvaluateExpressionOptions { public: static const uint32_t default_timeout = 500000; + static const ExecutionPolicy default_execution_policy = eExecutionPolicyOnlyWhenNeeded; + EvaluateExpressionOptions() : - m_execution_policy(eExecutionPolicyOnlyWhenNeeded), + m_execution_policy(default_execution_policy), m_language (lldb::eLanguageTypeUnknown), m_prefix (), // A prefix specific to this expression that is added after the prefix from the settings (if any) m_coerce_to_id (false), @@ -261,6 +292,7 @@ public: m_trap_exceptions (true), m_generate_debug_info (false), m_result_is_internal (false), + m_auto_apply_fixits (true), m_use_dynamic (lldb::eNoDynamicValues), m_timeout_usec (default_timeout), m_one_thread_timeout_usec (0), @@ -531,6 +563,18 @@ public: { return m_result_is_internal; } + + void + SetAutoApplyFixIts(bool b) + { + m_auto_apply_fixits = b; + } + + bool + GetAutoApplyFixIts() const + { + return m_auto_apply_fixits; + } private: ExecutionPolicy m_execution_policy; @@ -548,6 +592,7 @@ private: bool m_generate_debug_info; bool m_ansi_color_errors; bool m_result_is_internal; + bool m_auto_apply_fixits; lldb::DynamicValueType m_use_dynamic; uint32_t m_timeout_usec; uint32_t m_one_thread_timeout_usec; @@ -681,8 +726,8 @@ public: static const lldb::TargetPropertiesSP & GetGlobalProperties(); - Mutex & - GetAPIMutex () + std::recursive_mutex & + GetAPIMutex() { return m_mutex; } @@ -709,7 +754,7 @@ public: Dump (Stream *s, lldb::DescriptionLevel description_level); const lldb::ProcessSP & - CreateProcess (Listener &listener, + CreateProcess (lldb::ListenerSP listener, const char *plugin_name, const FileSpec *crash_file); @@ -757,6 +802,7 @@ public: CreateBreakpoint (const FileSpecList *containingModules, const FileSpec &file, uint32_t line_no, + lldb::addr_t offset, LazyBool check_inlines, LazyBool skip_prologue, bool internal, @@ -764,9 +810,11 @@ public: LazyBool move_to_nearest_code); // Use this to create breakpoint that matches regex against the source lines in files given in source_file_list: + // If function_names is non-empty, also filter by function after the matches are made. lldb::BreakpointSP CreateSourceRegexBreakpoint (const FileSpecList *containingModules, const FileSpecList *source_file_list, + const std::unordered_set<std::string> &function_names, RegularExpression &source_regex, bool internal, bool request_hardware, @@ -813,6 +861,7 @@ public: const char *func_name, uint32_t func_name_type_mask, lldb::LanguageType language, + lldb::addr_t offset, LazyBool skip_prologue, bool internal, bool request_hardware); @@ -834,8 +883,9 @@ public: const FileSpecList *containingSourceFiles, const char *func_names[], size_t num_names, - uint32_t func_name_type_mask, + uint32_t func_name_type_mask, lldb::LanguageType language, + lldb::addr_t offset, LazyBool skip_prologue, bool internal, bool request_hardware); @@ -846,6 +896,7 @@ public: const std::vector<std::string> &func_names, uint32_t func_name_type_mask, lldb::LanguageType language, + lldb::addr_t m_offset, LazyBool skip_prologue, bool internal, bool request_hardware); @@ -1342,7 +1393,8 @@ public: EvaluateExpression (const char *expression, ExecutionContextScope *exe_scope, lldb::ValueObjectSP &result_valobj_sp, - const EvaluateExpressionOptions& options = EvaluateExpressionOptions()); + const EvaluateExpressionOptions& options = EvaluateExpressionOptions(), + std::string *fixed_expression = nullptr); lldb::ExpressionVariableSP GetPersistentVariable(const ConstString &name); @@ -1555,7 +1607,8 @@ protected: //------------------------------------------------------------------ Debugger & m_debugger; lldb::PlatformSP m_platform_sp; ///< The platform for this target. - Mutex m_mutex; ///< An API mutex that is used by the lldb::SB* classes make the SB interface thread safe + std::recursive_mutex + m_mutex; ///< An API mutex that is used by the lldb::SB* classes make the SB interface thread safe ArchSpec m_arch; ModuleList m_images; ///< The list of images for this process (shared libraries and anything dynamically loaded). SectionLoadHistory m_section_load_history; |