aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Target/Target.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Target/Target.h')
-rw-r--r--include/lldb/Target/Target.h67
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;