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)