9#ifndef LLDB_BREAKPOINT_BREAKPOINTSITE_H
10#define LLDB_BREAKPOINT_BREAKPOINTSITE_H
75 size_t *opcode_offset)
const;
109 void AddOwner(
const lldb::BreakpointLocationSP &owner);
General Outline: A breakpoint location is defined by the breakpoint that produces it,...
"lldb/Breakpoint/BreakpointSiteList.h" Class that manages lists of BreakpointSite shared pointers.
Class that manages the actual breakpoint that will be inserted into the running program.
bool SetTrapOpcode(const uint8_t *trap_opcode, uint32_t trap_opcode_size)
Sets the trap opcode.
static lldb::break_id_t GetNextID()
void Dump(Stream *s) const override
Standard Dump method.
bool ShouldStop(StoppointCallbackContext *context) override
Enquires of the breakpoint locations that produced this breakpoint site whether we should stop at thi...
const BreakpointSite & operator=(const BreakpointSite &)=delete
size_t GetTrapOpcodeMaxByteSize() const
Get the size of the trap opcode for this address.
~BreakpointSite() override
BreakpointSite::Type m_type
The type of this breakpoint site.
BreakpointSite::Type GetType() const
void SetType(BreakpointSite::Type type)
bool IntersectsRange(lldb::addr_t addr, size_t size, lldb::addr_t *intersect_addr, size_t *intersect_size, size_t *opcode_offset) const
Says whether addr and size size intersects with the address intersect_addr.
void AddOwner(const lldb::BreakpointLocationSP &owner)
The "Owners" are the breakpoint locations that share this breakpoint site.
bool IsBreakpointAtThisSite(lldb::break_id_t bp_id)
Tell whether a breakpoint has a location at this site.
uint8_t * GetTrapOpcodeBytes()
Returns the Opcode Bytes for this breakpoint.
bool IsInternal() const
Tell whether ALL the breakpoints in the location collection are internal.
bool ValidForThisThread(Thread &thread)
Check whether the owners of this breakpoint site have any thread specifiers, and if yes,...
void GetDescription(Stream *s, lldb::DescriptionLevel level)
Print a description of this breakpoint site to the stream s.
size_t CopyOwnersList(BreakpointLocationCollection &out_collection)
This method copies the breakpoint site's owners into a new collection.
BreakpointLocationCollection m_owners
This has the BreakpointLocations that share this breakpoint site.
uint8_t m_trap_opcode[8]
The opcode that was used to create the breakpoint if it is a software breakpoint site.
uint8_t * GetSavedOpcodeBytes()
Gets the original instruction bytes that were overwritten by the trap.
BreakpointSite(const BreakpointSite &)=delete
bool IsHardware() const override
lldb::BreakpointLocationSP GetOwnerAtIndex(size_t idx)
This method returns the breakpoint location at index index located at this breakpoint site.
bool m_enabled
Boolean indicating if this breakpoint site enabled or not.
uint8_t m_saved_opcode[8]
The saved opcode bytes if this breakpoint site uses trap opcodes.
size_t GetNumberOfOwners()
This method returns the number of breakpoint locations currently located at this breakpoint site.
bool IsEnabled() const
Tells whether the current breakpoint site is enabled or not.
BreakpointSite(BreakpointSiteList *list, const lldb::BreakpointLocationSP &owner, lldb::addr_t m_addr, bool use_hardware)
std::recursive_mutex m_owners_mutex
This mutex protects the owners collection.
size_t RemoveOwner(lldb::break_id_t break_id, lldb::break_id_t break_loc_id)
The method removes the owner at break_loc_id from this breakpoint list.
void SetEnabled(bool enabled)
Sets whether the current breakpoint site is enabled or not.
A plug-in interface definition class for debugging a process.
General Outline: When we hit a breakpoint we need to package up whatever information is needed to eva...
lldb::addr_t m_addr
The load address of this stop point.
bool HardwareRequired() const
A stream class that can stream formatted output to a file.
A class that represents a running process on the host machine.
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.