Package lldb :: Class SBBreakpoint
[hide private]
[frames] | no frames]

Class SBBreakpoint

source code



Represents a logical breakpoint and its associated settings.

For example (from test/functionalities/breakpoint/breakpoint_ignore_count/
TestBreakpointIgnoreCount.py),

    def breakpoint_ignore_count_python(self):
        '''Use Python APIs to set breakpoint ignore count.'''
        exe = os.path.join(os.getcwd(), 'a.out')

        # Create a target by the debugger.
        target = self.dbg.CreateTarget(exe)
        self.assertTrue(target, VALID_TARGET)

        # Now create a breakpoint on main.c by name 'c'.
        breakpoint = target.BreakpointCreateByName('c', 'a.out')
        self.assertTrue(breakpoint and
                        breakpoint.GetNumLocations() == 1,
                        VALID_BREAKPOINT)

        # Get the breakpoint location from breakpoint after we verified that,
        # indeed, it has one location.
        location = breakpoint.GetLocationAtIndex(0)
        self.assertTrue(location and
                        location.IsEnabled(),
                        VALID_BREAKPOINT_LOCATION)

        # Set the ignore count on the breakpoint location.
        location.SetIgnoreCount(2)
        self.assertTrue(location.GetIgnoreCount() == 2,
                        'SetIgnoreCount() works correctly')

        # Now launch the process, and do not stop at entry point.
        process = target.LaunchSimple(None, None, os.getcwd())
        self.assertTrue(process, PROCESS_IS_VALID)

        # Frame#0 should be on main.c:37, frame#1 should be on main.c:25, and
        # frame#2 should be on main.c:48.
        #lldbutil.print_stacktraces(process)
        from lldbutil import get_stopped_thread
        thread = get_stopped_thread(process, lldb.eStopReasonBreakpoint)
        self.assertTrue(thread != None, 'There should be a thread stopped due to breakpoint')
        frame0 = thread.GetFrameAtIndex(0)
        frame1 = thread.GetFrameAtIndex(1)
        frame2 = thread.GetFrameAtIndex(2)
        self.assertTrue(frame0.GetLineEntry().GetLine() == self.line1 and
                        frame1.GetLineEntry().GetLine() == self.line3 and
                        frame2.GetLineEntry().GetLine() == self.line4,
                        STOPPED_DUE_TO_BREAKPOINT_IGNORE_COUNT)

        # The hit count for the breakpoint should be 3.
        self.assertTrue(breakpoint.GetHitCount() == 3)

        process.Continue()

SBBreakpoint supports breakpoint location iteration, for example,

    for bl in breakpoint:
        print('breakpoint location load addr: %s' % hex(bl.GetLoadAddress()))
        print('breakpoint location condition: %s' % hex(bl.GetCondition()))

and rich comparion methods which allow the API program to use,

    if aBreakpoint == bBreakpoint:
        ...

to compare two breakpoints for equality.

Instance Methods [hide private]
 
__setattr__(self, name, value)
x.__setattr__('name', value) <==> x.name = value
source code
 
__getattr__(self, name) source code
 
__repr__(self)
repr(x)
source code
 
__iter__(self) source code
 
__len__(self) source code
 
__init__(self, *args)
__init__(lldb::SBBreakpoint self) -> SBBreakpoint __init__(lldb::SBBreakpoint self, SBBreakpoint rhs) -> SBBreakpoint
source code
 
__swig_destroy__(...)
delete_SBBreakpoint(SBBreakpoint self)
 
__del__(self) source code
 
GetID(self)
GetID(SBBreakpoint self) -> lldb::break_id_t
source code
 
__nonzero__(self) source code
 
IsValid(self)
IsValid(SBBreakpoint self) -> bool
source code
 
ClearAllBreakpointSites(self)
ClearAllBreakpointSites(SBBreakpoint self)
source code
 
FindLocationByAddress(self, *args)
FindLocationByAddress(SBBreakpoint self, lldb::addr_t vm_addr) -> SBBreakpointLocation
source code
 
FindLocationIDByAddress(self, *args)
FindLocationIDByAddress(SBBreakpoint self, lldb::addr_t vm_addr) -> lldb::break_id_t
source code
 
FindLocationByID(self, *args)
FindLocationByID(SBBreakpoint self, lldb::break_id_t bp_loc_id) -> SBBreakpointLocation
source code
 
GetLocationAtIndex(self, *args)
GetLocationAtIndex(SBBreakpoint self, uint32_t index) -> SBBreakpointLocation
source code
 
SetEnabled(self, *args)
SetEnabled(SBBreakpoint self, bool enable)
source code
 
IsEnabled(self)
IsEnabled(SBBreakpoint self) -> bool
source code
 
SetOneShot(self, *args)
SetOneShot(SBBreakpoint self, bool one_shot)
source code
 
IsOneShot(self)
IsOneShot(SBBreakpoint self) -> bool
source code
 
IsInternal(self)
IsInternal(SBBreakpoint self) -> bool
source code
 
GetHitCount(self)
GetHitCount(SBBreakpoint self) -> uint32_t
source code
 
SetIgnoreCount(self, *args)
SetIgnoreCount(SBBreakpoint self, uint32_t count)
source code
 
GetIgnoreCount(self)
GetIgnoreCount(SBBreakpoint self) -> uint32_t
source code
 
SetCondition(self, *args)
SetCondition(SBBreakpoint self, str const * condition)
source code
 
GetCondition(self)
GetCondition(SBBreakpoint self) -> str const *
source code
 
SetThreadID(self, *args)
SetThreadID(SBBreakpoint self, lldb::tid_t sb_thread_id)
source code
 
GetThreadID(self)
GetThreadID(SBBreakpoint self) -> lldb::tid_t
source code
 
SetThreadIndex(self, *args)
SetThreadIndex(SBBreakpoint self, uint32_t index)
source code
 
GetThreadIndex(self)
GetThreadIndex(SBBreakpoint self) -> uint32_t
source code
 
SetThreadName(self, *args)
SetThreadName(SBBreakpoint self, str const * thread_name)
source code
 
GetThreadName(self)
GetThreadName(SBBreakpoint self) -> str const *
source code
 
SetQueueName(self, *args)
SetQueueName(SBBreakpoint self, str const * queue_name)
source code
 
GetQueueName(self)
GetQueueName(SBBreakpoint self) -> str const *
source code
 
SetScriptCallbackFunction(self, *args)
SetScriptCallbackFunction(SBBreakpoint self, str const * callback_function_name)
source code
 
SetScriptCallbackBody(self, *args)
SetScriptCallbackBody(SBBreakpoint self, str const * script_body_text) -> SBError
source code
 
SetCommandLineCommands(self, *args)
SetCommandLineCommands(SBBreakpoint self, SBStringList commands)
source code
 
GetCommandLineCommands(self, *args)
GetCommandLineCommands(SBBreakpoint self, SBStringList commands) -> bool
source code
 
AddName(self, *args)
AddName(SBBreakpoint self, str const * new_name) -> bool
source code
 
RemoveName(self, *args)
RemoveName(SBBreakpoint self, str const * name_to_remove)
source code
 
MatchesName(self, *args)
MatchesName(SBBreakpoint self, str const * name) -> bool
source code
 
GetNames(self, *args)
GetNames(SBBreakpoint self, SBStringList names)
source code
 
GetNumResolvedLocations(self)
GetNumResolvedLocations(SBBreakpoint self) -> size_t
source code
 
GetNumLocations(self)
GetNumLocations(SBBreakpoint self) -> size_t
source code
 
GetDescription(self, *args)
GetDescription(SBBreakpoint self, SBStream description) -> bool GetDescription(SBBreakpoint self, SBStream description, bool include_locations) -> bool
source code
 
__str__(self)
__str__(SBBreakpoint self) -> PyObject *
source code
 
__eq__(self, rhs) source code
 
__ne__(self, rhs) source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __sizeof__, __subclasshook__

Static Methods [hide private]
 
EventIsBreakpointEvent(*args)
EventIsBreakpointEvent(SBEvent event) -> bool
source code
 
GetBreakpointEventTypeFromEvent(*args)
GetBreakpointEventTypeFromEvent(SBEvent event) -> lldb::BreakpointEventType
source code
 
GetBreakpointFromEvent(*args)
GetBreakpointFromEvent(SBEvent event) -> SBBreakpoint
source code
 
GetBreakpointLocationAtIndexFromEvent(*args)
GetBreakpointLocationAtIndexFromEvent(SBEvent event, uint32_t loc_idx) -> SBBreakpointLocation
source code
 
GetNumBreakpointLocationsFromEvent(*args)
GetNumBreakpointLocationsFromEvent(SBEvent event_sp) -> uint32_t
source code
Class Variables [hide private]
  __swig_setmethods__ = {}
  __swig_getmethods__ = {}
Properties [hide private]
  enabled
A read/write property that configures whether this breakpoint is enabled or not.
  id
A read only property that returns the ID of this breakpoint.
  num_locations
A read only property that returns the count of locations of this breakpoint.
  one_shot
A read/write property that configures whether this breakpoint is one-shot (deleted when hit) or not.

Inherited from object: __class__

Method Details [hide private]

__setattr__(self, name, value)

source code 

x.__setattr__('name', value) <==> x.name = value

Overrides: object.__setattr__
(inherited documentation)

__repr__(self)
(Representation operator)

source code 

repr(x)

Overrides: object.__repr__
(inherited documentation)

__init__(self, *args)
(Constructor)

source code 

__init__(lldb::SBBreakpoint self) -> SBBreakpoint __init__(lldb::SBBreakpoint self, SBBreakpoint rhs) -> SBBreakpoint

Overrides: object.__init__

SetCondition(self, *args)

source code 

SetCondition(SBBreakpoint self, str const * condition)

The breakpoint stops only if the condition expression evaluates to true.

GetCondition(self)

source code 

GetCondition(SBBreakpoint self) -> str const *

Get the condition expression for the breakpoint.

SetScriptCallbackFunction(self, *args)

source code 

SetScriptCallbackFunction(SBBreakpoint self, str const * callback_function_name)

Set the name of the script function to be called when the breakpoint is hit.

SetScriptCallbackBody(self, *args)

source code 

SetScriptCallbackBody(SBBreakpoint self, str const * script_body_text) -> SBError

Provide the body for the script function to be called when the breakpoint is hit. The body will be wrapped in a function, which be passed two arguments: 'frame' - which holds the bottom-most SBFrame of the thread that hit the breakpoint 'bpno' - which is the SBBreakpointLocation to which the callback was attached.

The error parameter is currently ignored, but will at some point hold the Python compilation diagnostics. Returns true if the body compiles successfully, false if not.

__str__(self)
(Informal representation operator)

source code 

__str__(SBBreakpoint self) -> PyObject *

Overrides: object.__str__

Property Details [hide private]

enabled

A read/write property that configures whether this breakpoint is enabled or not.

Get Method:
IsEnabled(self) - IsEnabled(SBBreakpoint self) -> bool
Set Method:
SetEnabled(self, *args) - SetEnabled(SBBreakpoint self, bool enable)

id

A read only property that returns the ID of this breakpoint.

Get Method:
GetID(self) - GetID(SBBreakpoint self) -> lldb::break_id_t

num_locations

A read only property that returns the count of locations of this breakpoint.

Get Method:
GetNumLocations(self) - GetNumLocations(SBBreakpoint self) -> size_t

one_shot

A read/write property that configures whether this breakpoint is one-shot (deleted when hit) or not.

Get Method:
IsOneShot(self) - IsOneShot(SBBreakpoint self) -> bool
Set Method:
SetOneShot(self, *args) - SetOneShot(SBBreakpoint self, bool one_shot)