#ifndef LLDB_API_SBTARGET_H
#define LLDB_API_SBTARGET_H
-#include "lldb/lldb-private-enumerations.h"
-
#include "lldb/API/SBAddress.h"
#include "lldb/API/SBAttachInfo.h"
#include "lldb/API/SBBreakpoint.h"
uint32_t column, lldb::addr_t offset,
SBFileSpecList &module_list);
- lldb::SBBreakpoint
- BreakpointCreateByLocation(const lldb::SBFileSpec &file_spec, uint32_t line,
- uint32_t column, lldb::addr_t offset,
- SBFileSpecList &module_list,
- bool move_to_nearest_code);
-
lldb::SBBreakpoint BreakpointCreateByName(const char *symbol_name,
const char *module_name = nullptr);
void SetSP(const lldb::TargetSP &target_sp);
private:
- lldb::SBBreakpoint BreakpointCreateByLocationImpl(
- const lldb::SBFileSpec &file_spec, uint32_t line, uint32_t column,
- lldb::addr_t offset, SBFileSpecList &module_list,
- const lldb_private::LazyBool move_to_nearest_code);
-
lldb::TargetSP m_opaque_sp;
};
offset, sb_module_list));
}
-SBBreakpoint SBTarget::BreakpointCreateByLocationImpl(
- const lldb::SBFileSpec &sb_file_spec, uint32_t line, uint32_t column,
- lldb::addr_t offset, SBFileSpecList &sb_module_list,
- const LazyBool move_to_nearest_code) {
+SBBreakpoint SBTarget::BreakpointCreateByLocation(
+ const SBFileSpec &sb_file_spec, uint32_t line, uint32_t column,
+ lldb::addr_t offset, SBFileSpecList &sb_module_list) {
+ LLDB_RECORD_METHOD(lldb::SBBreakpoint, SBTarget, BreakpointCreateByLocation,
+ (const lldb::SBFileSpec &, uint32_t, uint32_t,
+ lldb::addr_t, lldb::SBFileSpecList &),
+ sb_file_spec, line, column, offset, sb_module_list);
+
SBBreakpoint sb_bp;
TargetSP target_sp(GetSP());
if (target_sp && line != 0) {
const LazyBool skip_prologue = eLazyBoolCalculate;
const bool internal = false;
const bool hardware = false;
+ const LazyBool move_to_nearest_code = eLazyBoolCalculate;
const FileSpecList *module_list = nullptr;
if (sb_module_list.GetSize() > 0) {
module_list = sb_module_list.get();
skip_prologue, internal, hardware, move_to_nearest_code);
}
- return sb_bp;
-}
-
-SBBreakpoint SBTarget::BreakpointCreateByLocation(
- const SBFileSpec &sb_file_spec, uint32_t line, uint32_t column,
- lldb::addr_t offset, SBFileSpecList &sb_module_list) {
- LLDB_RECORD_METHOD(lldb::SBBreakpoint, SBTarget, BreakpointCreateByLocation,
- (const lldb::SBFileSpec &, uint32_t, uint32_t,
- lldb::addr_t, lldb::SBFileSpecList &),
- sb_file_spec, line, column, offset, sb_module_list);
-
- return LLDB_RECORD_RESULT(BreakpointCreateByLocationImpl(
- sb_file_spec, line, column, offset, sb_module_list, eLazyBoolCalculate));
-}
-
-SBBreakpoint SBTarget::BreakpointCreateByLocation(
- const SBFileSpec &sb_file_spec, uint32_t line, uint32_t column,
- lldb::addr_t offset, SBFileSpecList &sb_module_list,
- bool move_to_nearest_code) {
- LLDB_RECORD_METHOD(lldb::SBBreakpoint, SBTarget, BreakpointCreateByLocation,
- (const lldb::SBFileSpec &, uint32_t, uint32_t,
- lldb::addr_t, lldb::SBFileSpecList &, bool),
- sb_file_spec, line, column, offset, sb_module_list,
- move_to_nearest_code);
-
- return LLDB_RECORD_RESULT(BreakpointCreateByLocationImpl(
- sb_file_spec, line, column, offset, sb_module_list,
- move_to_nearest_code ? eLazyBoolYes : eLazyBoolNo));
+ return LLDB_RECORD_RESULT(sb_bp);
}
SBBreakpoint SBTarget::BreakpointCreateByName(const char *symbol_name,
BreakpointCreateByLocation,
(const lldb::SBFileSpec &, uint32_t, uint32_t,
lldb::addr_t, lldb::SBFileSpecList &));
- LLDB_REGISTER_METHOD(lldb::SBBreakpoint, SBTarget, BreakpointCreateByLocation,
- (const lldb::SBFileSpec &, uint32_t, uint32_t,
- lldb::addr_t, lldb::SBFileSpecList &, bool));
LLDB_REGISTER_METHOD(lldb::SBBreakpoint, SBTarget, BreakpointCreateByName,
(const char *, const char *));
LLDB_REGISTER_METHOD(lldb::SBBreakpoint, SBTarget, BreakpointCreateByName,
self.assertEqual(b_loc.GetLine(), 11)
in_condition |= b_loc.GetColumn() < 30
self.assertTrue(in_condition)
-
- ## Skip gcc version less 7.1 since it doesn't support -gcolumn-info
- @skipIf(compiler="gcc", compiler_version=['<', '7.1'])
- def testBreakpointByLineAndColumnNearestCode(self):
- self.build()
- exe = self.getBuildArtifact("a.out")
-
- main_c = lldb.SBFileSpec("main.c")
- line = line_number("main.c", "// Line 20.")
- column = len("// Line 20") # should stop at the period.
- indent = 2
- module_list = lldb.SBFileSpecList()
-
- # Create a target from the debugger.
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target, VALID_TARGET)
-
- valid_bpt = target.BreakpointCreateByLocation(main_c, line, column,
- indent, module_list, True)
- self.assertTrue(valid_bpt, VALID_BREAKPOINT)
- self.assertEqual(valid_bpt.GetNumLocations(), 1)
-
- invalid_bpt = target.BreakpointCreateByLocation(main_c, line, column,
- indent, module_list, False)
- self.assertTrue(invalid_bpt, VALID_BREAKPOINT)
- self.assertEqual(invalid_bpt.GetNumLocations(), 0)
-