Also push file & line breakpoints past the prologue. Also added a "-K" argument to the relevant
"break set" commands to set this per breakpoint. Also, some CreateBreakpoint API's in the lldb_private
namespace had "internal" first and "skip_prologue" second. "internal should always be last. Fixed that.
rdar://problem/11484729
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157225 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Target/Target.cpp b/source/Target/Target.cpp
index 5fe1f5e..442c08e 100644
--- a/source/Target/Target.cpp
+++ b/source/Target/Target.cpp
@@ -234,10 +234,17 @@
BreakpointSP
-Target::CreateBreakpoint (const FileSpecList *containingModules, const FileSpec &file, uint32_t line_no, bool check_inlines, bool internal)
+Target::CreateBreakpoint (const FileSpecList *containingModules,
+ const FileSpec &file,
+ uint32_t line_no,
+ bool check_inlines,
+ LazyBool skip_prologue,
+ bool internal)
{
SearchFilterSP filter_sp(GetSearchFilterForModuleList (containingModules));
- BreakpointResolverSP resolver_sp(new BreakpointResolverFileLine (NULL, file, line_no, check_inlines));
+
+ BreakpointResolverSP resolver_sp(new BreakpointResolverFileLine (NULL, file, line_no, check_inlines,
+ skip_prologue == eLazyBoolCalculate ? GetSkipPrologue() : skip_prologue));
return CreateBreakpoint (filter_sp, resolver_sp, internal);
}
@@ -273,8 +280,8 @@
const FileSpecList *containingSourceFiles,
const char *func_name,
uint32_t func_name_type_mask,
- bool internal,
- LazyBool skip_prologue)
+ LazyBool skip_prologue,
+ bool internal)
{
BreakpointSP bp_sp;
if (func_name)
@@ -296,8 +303,8 @@
const FileSpecList *containingSourceFiles,
const std::vector<std::string> &func_names,
uint32_t func_name_type_mask,
- bool internal,
- LazyBool skip_prologue)
+ LazyBool skip_prologue,
+ bool internal)
{
BreakpointSP bp_sp;
size_t num_names = func_names.size();
@@ -320,8 +327,8 @@
const char *func_names[],
size_t num_names,
uint32_t func_name_type_mask,
- bool internal,
- LazyBool skip_prologue)
+ LazyBool skip_prologue,
+ bool internal)
{
BreakpointSP bp_sp;
if (num_names > 0)
@@ -377,7 +384,8 @@
}
SearchFilterSP
-Target::GetSearchFilterForModuleAndCUList (const FileSpecList *containingModules, const FileSpecList *containingSourceFiles)
+Target::GetSearchFilterForModuleAndCUList (const FileSpecList *containingModules,
+ const FileSpecList *containingSourceFiles)
{
if (containingSourceFiles == NULL || containingSourceFiles->GetSize() == 0)
return GetSearchFilterForModuleList(containingModules);
@@ -399,10 +407,10 @@
BreakpointSP
Target::CreateFuncRegexBreakpoint (const FileSpecList *containingModules,
- const FileSpecList *containingSourceFiles,
- RegularExpression &func_regex,
- bool internal,
- LazyBool skip_prologue)
+ const FileSpecList *containingSourceFiles,
+ RegularExpression &func_regex,
+ LazyBool skip_prologue,
+ bool internal)
{
SearchFilterSP filter_sp(GetSearchFilterForModuleAndCUList (containingModules, containingSourceFiles));
BreakpointResolverSP resolver_sp(new BreakpointResolverName (NULL,