Go to the documentation of this file.
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);
189 return BreakpointSite::Type::eHardware ==
GetType();
239 #endif // LLDB_BREAKPOINT_BREAKPOINTSITE_H
MATCHES FreeBSD list(APPEND FBSDKERNEL_LIBS kvm) endif() if(NOT FBSDKERNEL_LIBS) message(STATUS "Skipping FreeBSDKernel plugin due to missing libfbsdvmcore") return() endif() add_lldb_library(lldbPluginProcessFreeBSDKernel PLUGIN ProcessFreeBSDKernel.cpp RegisterContextFreeBSDKernel_arm64.cpp RegisterContextFreeBSDKernel_i386.cpp RegisterContextFreeBSDKernel_x86_64.cpp ThreadFreeBSDKernel.cpp LINK_LIBS lldbCore lldbTarget $
bool IsBreakpointAtThisSite(lldb::break_id_t bp_id)
Tell whether a breakpoint has a location at this site.
uint8_t * GetSavedOpcodeBytes()
Gets the original instruction bytes that were overwritten by the trap.
bool IsInternal() const
Tell whether ALL the breakpoints in the location collection are internal.
General Outline: When we hit a breakpoint we need to package up whatever information is needed to eva...
size_t CopyOwnersList(BreakpointLocationCollection &out_collection)
This method copies the breakpoint site's owners into a new collection.
void AddOwner(const lldb::BreakpointLocationSP &owner)
The "Owners" are the breakpoint locations that share this breakpoint site.
lldb::BreakpointLocationSP GetOwnerAtIndex(size_t idx)
This method returns the breakpoint location at index index located at this breakpoint site.
BreakpointSite(BreakpointSiteList *list, const lldb::BreakpointLocationSP &owner, lldb::addr_t m_addr, bool use_hardware)
BreakpointSite::Type GetType() const
bool m_enabled
Boolean indicating if this breakpoint site enabled or not.
bool ValidForThisThread(Thread &thread)
Check whether the owners of this breakpoint site have any thread specifiers, and if yes,...
General Outline: A breakpoint location is defined by the breakpoint that produces it,...
uint8_t m_trap_opcode[8]
The opcode that was used to create the breakpoint if it is a software breakpoint site.
BreakpointSite::Type m_type
The type of this breakpoint site.
size_t GetTrapOpcodeMaxByteSize() const
Get the size of the trap opcode for this address.
std::recursive_mutex m_owners_mutex
This mutex protects the owners collection.
bool HardwareRequired() const
void SetEnabled(bool enabled)
Sets whether the current breakpoint site is enabled or not.
const BreakpointSite & operator=(const BreakpointSite &)=delete
bool IsHardware() const override
BreakpointLocationCollection m_owners
This has the BreakpointLocations that share this breakpoint site.
~BreakpointSite() override
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.
uint8_t m_saved_opcode[8]
The saved opcode bytes if this breakpoint site uses trap opcodes.
uint8_t * GetTrapOpcodeBytes()
Returns the Opcode Bytes for this breakpoint.
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 GetDescription(Stream *s, lldb::DescriptionLevel level)
Print a description of this breakpoint site to the stream s.
static lldb::break_id_t GetNextID()
bool ShouldStop(StoppointCallbackContext *context) override
Enquires of the breakpoint locations that produced this breakpoint site whether we should stop at thi...
bool IsEnabled() const
Tells whether the current breakpoint site is enabled or not.
lldb::addr_t m_addr
The load address of this stop point.
A class that represents a running process on the host machine.
bool SetTrapOpcode(const uint8_t *trap_opcode, uint32_t trap_opcode_size)
Sets the trap opcode.
size_t GetNumberOfOwners()
This method returns the number of breakpoint locations currently located at this breakpoint site.
void Dump(Stream *s) const override
Standard Dump method.
void SetType(BreakpointSite::Type type)
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.