diff options
Diffstat (limited to 'lldb/source/Target/Target.cpp')
| -rw-r--r-- | lldb/source/Target/Target.cpp | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index 2da8c19e85f..6cfadd1978b 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -245,11 +245,12 @@ BreakpointSP Target::CreateSourceRegexBreakpoint (const FileSpecList *containingModules, const FileSpecList *source_file_spec_list, RegularExpression &source_regex, - bool internal) + bool internal, + bool hardware) { SearchFilterSP filter_sp(GetSearchFilterForModuleAndCUList (containingModules, source_file_spec_list)); BreakpointResolverSP resolver_sp(new BreakpointResolverFileRegex (NULL, source_regex)); - return CreateBreakpoint (filter_sp, resolver_sp, internal); + return CreateBreakpoint (filter_sp, resolver_sp, internal, hardware); } @@ -259,7 +260,8 @@ Target::CreateBreakpoint (const FileSpecList *containingModules, uint32_t line_no, LazyBool check_inlines, LazyBool skip_prologue, - bool internal) + bool internal, + bool hardware) { if (check_inlines == eLazyBoolCalculate) { @@ -302,12 +304,12 @@ Target::CreateBreakpoint (const FileSpecList *containingModules, line_no, check_inlines, skip_prologue)); - return CreateBreakpoint (filter_sp, resolver_sp, internal); + return CreateBreakpoint (filter_sp, resolver_sp, internal, hardware); } BreakpointSP -Target::CreateBreakpoint (lldb::addr_t addr, bool internal) +Target::CreateBreakpoint (lldb::addr_t addr, bool internal, bool hardware) { Address so_addr; // Attempt to resolve our load address if possible, though it is ok if @@ -320,16 +322,16 @@ Target::CreateBreakpoint (lldb::addr_t addr, bool internal) // The address didn't resolve, so just set this as an absolute address so_addr.SetOffset (addr); } - BreakpointSP bp_sp (CreateBreakpoint(so_addr, internal)); + BreakpointSP bp_sp (CreateBreakpoint(so_addr, internal, hardware)); return bp_sp; } BreakpointSP -Target::CreateBreakpoint (Address &addr, bool internal) +Target::CreateBreakpoint (Address &addr, bool internal, bool hardware) { SearchFilterSP filter_sp(new SearchFilterForNonModuleSpecificSearches (shared_from_this())); BreakpointResolverSP resolver_sp (new BreakpointResolverAddress (NULL, addr)); - return CreateBreakpoint (filter_sp, resolver_sp, internal); + return CreateBreakpoint (filter_sp, resolver_sp, internal, hardware); } BreakpointSP @@ -338,7 +340,8 @@ Target::CreateBreakpoint (const FileSpecList *containingModules, const char *func_name, uint32_t func_name_type_mask, LazyBool skip_prologue, - bool internal) + bool internal, + bool hardware) { BreakpointSP bp_sp; if (func_name) @@ -353,7 +356,7 @@ Target::CreateBreakpoint (const FileSpecList *containingModules, func_name_type_mask, Breakpoint::Exact, skip_prologue)); - bp_sp = CreateBreakpoint (filter_sp, resolver_sp, internal); + bp_sp = CreateBreakpoint (filter_sp, resolver_sp, internal, hardware); } return bp_sp; } @@ -364,7 +367,8 @@ Target::CreateBreakpoint (const FileSpecList *containingModules, const std::vector<std::string> &func_names, uint32_t func_name_type_mask, LazyBool skip_prologue, - bool internal) + bool internal, + bool hardware) { BreakpointSP bp_sp; size_t num_names = func_names.size(); @@ -379,7 +383,7 @@ Target::CreateBreakpoint (const FileSpecList *containingModules, func_names, func_name_type_mask, skip_prologue)); - bp_sp = CreateBreakpoint (filter_sp, resolver_sp, internal); + bp_sp = CreateBreakpoint (filter_sp, resolver_sp, internal, hardware); } return bp_sp; } @@ -391,7 +395,8 @@ Target::CreateBreakpoint (const FileSpecList *containingModules, size_t num_names, uint32_t func_name_type_mask, LazyBool skip_prologue, - bool internal) + bool internal, + bool hardware) { BreakpointSP bp_sp; if (num_names > 0) @@ -406,7 +411,7 @@ Target::CreateBreakpoint (const FileSpecList *containingModules, num_names, func_name_type_mask, skip_prologue)); - bp_sp = CreateBreakpoint (filter_sp, resolver_sp, internal); + bp_sp = CreateBreakpoint (filter_sp, resolver_sp, internal, hardware); } return bp_sp; } @@ -476,14 +481,15 @@ Target::CreateFuncRegexBreakpoint (const FileSpecList *containingModules, const FileSpecList *containingSourceFiles, RegularExpression &func_regex, LazyBool skip_prologue, - bool internal) + bool internal, + bool hardware) { SearchFilterSP filter_sp(GetSearchFilterForModuleAndCUList (containingModules, containingSourceFiles)); BreakpointResolverSP resolver_sp(new BreakpointResolverName (NULL, func_regex, skip_prologue == eLazyBoolCalculate ? GetSkipPrologue() : skip_prologue)); - return CreateBreakpoint (filter_sp, resolver_sp, internal); + return CreateBreakpoint (filter_sp, resolver_sp, internal, hardware); } lldb::BreakpointSP @@ -493,12 +499,12 @@ Target::CreateExceptionBreakpoint (enum lldb::LanguageType language, bool catch_ } BreakpointSP -Target::CreateBreakpoint (SearchFilterSP &filter_sp, BreakpointResolverSP &resolver_sp, bool internal) +Target::CreateBreakpoint (SearchFilterSP &filter_sp, BreakpointResolverSP &resolver_sp, bool internal, bool request_hardware) { BreakpointSP bp_sp; if (filter_sp && resolver_sp) { - bp_sp.reset(new Breakpoint (*this, filter_sp, resolver_sp)); + bp_sp.reset(new Breakpoint (*this, filter_sp, resolver_sp, request_hardware)); resolver_sp->SetBreakpoint (bp_sp.get()); if (internal) |

