LLDB mainline
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
lldb_private::BreakpointLocation Class Reference

General Outline: A breakpoint location is defined by the breakpoint that produces it, and the address that resulted in this particular instantiation. More...

#include <BreakpointLocation.h>

Inheritance diagram for lldb_private::BreakpointLocation:
Inheritance graph
[legend]

Public Member Functions

 ~BreakpointLocation ()
 
lldb::addr_t GetLoadAddress () const
 Gets the load address for this breakpoint location.
 
AddressGetAddress ()
 Gets the Address for this breakpoint location.
 
BreakpointGetBreakpoint ()
 Gets the Breakpoint that created this breakpoint location.
 
TargetGetTarget ()
 
bool ShouldStop (StoppointCallbackContext *context)
 Determines whether we should stop due to a hit at this breakpoint location.
 
void SetEnabled (bool enabled)
 If enabled is true, enable the breakpoint, if false disable it.
 
bool IsEnabled () const
 Check the Enable/Disable state.
 
void SetAutoContinue (bool auto_continue)
 If auto_continue is true, set the breakpoint to continue when hit.
 
bool IsAutoContinue () const
 Check the AutoContinue state.
 
uint32_t GetHitCount () const
 Return the current Hit Count.
 
void ResetHitCount ()
 Resets the current Hit Count.
 
uint32_t GetIgnoreCount () const
 Return the current Ignore Count.
 
void SetIgnoreCount (uint32_t n)
 Set the breakpoint to ignore the next count breakpoint hits.
 
void SetCallback (BreakpointHitCallback callback, const lldb::BatonSP &callback_baton_sp, bool is_synchronous)
 Set the callback action invoked when the breakpoint is hit.
 
void SetCallback (BreakpointHitCallback callback, void *baton, bool is_synchronous)
 
void ClearCallback ()
 
void SetCondition (const char *condition)
 Set the breakpoint location's condition.
 
const char * GetConditionText (size_t *hash=nullptr) const
 Return a pointer to the text of the condition expression.
 
bool ConditionSaysStop (ExecutionContext &exe_ctx, Status &error)
 
void SetThreadID (lldb::tid_t thread_id)
 Set the valid thread to be checked when the breakpoint is hit.
 
lldb::tid_t GetThreadID ()
 
void SetThreadIndex (uint32_t index)
 
uint32_t GetThreadIndex () const
 
void SetThreadName (const char *thread_name)
 
const char * GetThreadName () const
 
void SetQueueName (const char *queue_name)
 
const char * GetQueueName () const
 
bool ResolveBreakpointSite ()
 Try to resolve the breakpoint site for this location.
 
bool ClearBreakpointSite ()
 Clear this breakpoint location's breakpoint site - for instance when disabling the breakpoint.
 
bool IsResolved () const
 Return whether this breakpoint location has a breakpoint site.
 
lldb::BreakpointSiteSP GetBreakpointSite () const
 
void GetDescription (Stream *s, lldb::DescriptionLevel level)
 Print a description of this breakpoint location to the stream s.
 
void Dump (Stream *s) const
 Standard "Dump" method. At present it does nothing.
 
BreakpointOptionsGetLocationOptions ()
 Use this to set location specific breakpoint options.
 
const BreakpointOptionsGetOptionsSpecifyingKind (BreakpointOptions::OptionKind kind) const
 Use this to access breakpoint options from this breakpoint location.
 
bool ValidForThisThread (Thread &thread)
 
bool InvokeCallback (StoppointCallbackContext *context)
 Invoke the callback action when the breakpoint is hit.
 
bool IsCallbackSynchronous ()
 Report whether the callback for this location is synchronous or not.
 
bool ShouldResolveIndirectFunctions ()
 Returns whether we should resolve Indirect functions in setting the breakpoint site for this location.
 
bool IsIndirect ()
 Returns whether the address set in the breakpoint site for this location was found by resolving an indirect symbol.
 
void SetIsIndirect (bool is_indirect)
 
bool IsReExported ()
 Returns whether the address set in the breakpoint location was re-routed to the target of a re-exported symbol.
 
void SetIsReExported (bool is_reexported)
 
bool EquivalentToLocation (BreakpointLocation &location)
 Returns whether the two breakpoint locations might represent "equivalent locations".
 
lldb::break_id_t GetID () const
 Returns the breakpoint location ID.
 

Protected Member Functions

bool SetBreakpointSite (lldb::BreakpointSiteSP &bp_site_sp)
 Set the breakpoint site for this location to bp_site_sp.
 
void DecrementIgnoreCount ()
 
bool IgnoreCountShouldStop ()
 BreakpointLocation::IgnoreCountShouldStop can only be called once per stop.
 

Private Member Functions

void SwapLocation (lldb::BreakpointLocationSP swap_from)
 
void BumpHitCount ()
 
void UndoBumpHitCount ()
 
void SetThreadIDInternal (lldb::tid_t thread_id)
 Updates the thread ID internally.
 
 BreakpointLocation (lldb::break_id_t bid, Breakpoint &owner, const Address &addr, lldb::tid_t tid, bool hardware, bool check_for_resolver=true)
 Constructor.
 
void SetShouldResolveIndirectFunctions (bool do_resolve)
 
void SendBreakpointLocationChangedEvent (lldb::BreakpointEventType eventKind)
 
 BreakpointLocation (const BreakpointLocation &)=delete
 
const BreakpointLocationoperator= (const BreakpointLocation &)=delete
 

Private Attributes

bool m_should_resolve_indirect_functions
 
bool m_is_reexported
 
bool m_is_indirect
 
Address m_address
 The address defining this location.
 
Breakpointm_owner
 The breakpoint that produced this object.
 
std::unique_ptr< BreakpointOptionsm_options_up
 Breakpoint options pointer, nullptr if we're using our breakpoint's options.
 
lldb::BreakpointSiteSP m_bp_site_sp
 Our breakpoint site (it may be shared by more than one location.)
 
lldb::UserExpressionSP m_user_expression_sp
 The compiled expression to use in testing our condition.
 
std::mutex m_condition_mutex
 Guards parsing and evaluation of the condition, which could be evaluated by multiple processes.
 
size_t m_condition_hash
 For testing whether the condition source code changed.
 
lldb::break_id_t m_loc_id
 Breakpoint location ID.
 
StoppointHitCounter m_hit_counter
 Number of times this breakpoint location has been hit.
 

Friends

class BreakpointSite
 
class BreakpointLocationList
 
class Process
 
class StopInfoBreakpoint
 

Detailed Description

General Outline: A breakpoint location is defined by the breakpoint that produces it, and the address that resulted in this particular instantiation.

"lldb/Breakpoint/BreakpointLocation.h" Class that manages one unique (by address) instance of a logical breakpoint.

Each breakpoint location also may have a breakpoint site if its address has been loaded into the program. Finally it has a settable options object.

FIXME: Should we also store some fingerprint for the location, so we can map one location to the "equivalent location" on rerun? This would be useful if you've set options on the locations.

Definition at line 37 of file BreakpointLocation.h.

Constructor & Destructor Documentation

◆ ~BreakpointLocation()

BreakpointLocation::~BreakpointLocation ( )

Definition at line 48 of file BreakpointLocation.cpp.

References ClearBreakpointSite().

◆ BreakpointLocation() [1/2]

lldb_private::BreakpointLocation::BreakpointLocation ( lldb::break_id_t  bid,
Breakpoint owner,
const Address addr,
lldb::tid_t  tid,
bool  hardware,
bool  check_for_resolver = true 
)
private

Constructor.

Parameters
[in]ownerA back pointer to the breakpoint that owns this location.
[in]addrThe Address defining this location.
[in]tidThe thread for which this breakpoint location is valid, or LLDB_INVALID_THREAD_ID if it is valid for all threads.
[in]hardwaretrue if a hardware breakpoint is requested.

◆ BreakpointLocation() [2/2]

lldb_private::BreakpointLocation::BreakpointLocation ( const BreakpointLocation )
privatedelete

Member Function Documentation

◆ BumpHitCount()

void BreakpointLocation::BumpHitCount ( )
private

◆ ClearBreakpointSite()

bool BreakpointLocation::ClearBreakpointSite ( )

Clear this breakpoint location's breakpoint site - for instance when disabling the breakpoint.

Returns
true if there was a breakpoint site to be cleared, false otherwise.

Definition at line 461 of file BreakpointLocation.cpp.

References GetBreakpoint(), GetID(), lldb_private::Target::GetProcessSP(), lldb_private::Breakpoint::GetTarget(), m_bp_site_sp, and m_owner.

Referenced by SetEnabled(), and ~BreakpointLocation().

◆ ClearCallback()

void BreakpointLocation::ClearCallback ( )

◆ ConditionSaysStop()

bool BreakpointLocation::ConditionSaysStop ( ExecutionContext exe_ctx,
Status error 
)

◆ DecrementIgnoreCount()

void BreakpointLocation::DecrementIgnoreCount ( )
protected

Definition at line 343 of file BreakpointLocation.cpp.

References m_options_up.

Referenced by IgnoreCountShouldStop().

◆ Dump()

void BreakpointLocation::Dump ( Stream s) const

◆ EquivalentToLocation()

bool lldb_private::BreakpointLocation::EquivalentToLocation ( BreakpointLocation location)

Returns whether the two breakpoint locations might represent "equivalent locations".

This is used when modules changed to determine if a Location in the old module might be the "same as" the input location.

Parameters
[in]locationThe location to compare against.
Returns
true or false as given in the description above.

◆ GetAddress()

Address & BreakpointLocation::GetAddress ( )

Gets the Address for this breakpoint location.

Returns
Returns breakpoint location Address.

Definition at line 62 of file BreakpointLocation.cpp.

References m_address.

Referenced by lldb_private::BreakpointLocationList::RemoveInvalidLocations().

◆ GetBreakpoint()

Breakpoint & BreakpointLocation::GetBreakpoint ( )

Gets the Breakpoint that created this breakpoint location.

Returns
Returns the owning breakpoint.

Definition at line 64 of file BreakpointLocation.cpp.

References m_owner.

Referenced by ClearBreakpointSite(), and IgnoreCountShouldStop().

◆ GetBreakpointSite()

lldb::BreakpointSiteSP BreakpointLocation::GetBreakpointSite ( ) const

Definition at line 430 of file BreakpointLocation.cpp.

References m_bp_site_sp.

◆ GetConditionText()

const char * BreakpointLocation::GetConditionText ( size_t *  hash = nullptr) const

Return a pointer to the text of the condition expression.

Returns
A pointer to the condition expression text, or nullptr if no

Definition at line 221 of file BreakpointLocation.cpp.

References lldb_private::BreakpointOptions::eCondition, lldb_private::BreakpointOptions::GetConditionText(), and GetOptionsSpecifyingKind().

Referenced by ConditionSaysStop().

◆ GetDescription()

void BreakpointLocation::GetDescription ( Stream s,
lldb::DescriptionLevel  level 
)

Print a description of this breakpoint location to the stream s.

Parameters
[in]sThe stream to which to print the description.
[in]levelThe description level that indicates the detail level to provide.
See also
lldb::DescriptionLevel

Definition at line 479 of file BreakpointLocation.cpp.

References lldb_private::ConstString::AsCString(), lldb_private::Stream::AsRawOstream(), lldb_private::Address::CalculateSymbolContext(), lldb_private::Address::CalculateSymbolContextSymbol(), lldb_private::SymbolContext::comp_unit, lldb_private::ConstString::Dump(), lldb_private::Address::Dump(), lldb_private::LineEntry::DumpStopContext(), lldb_private::SymbolContext::DumpStopContext(), lldb_private::Address::DumpStyleFileAddress, lldb_private::Address::DumpStyleLoadAddress, lldb_private::Address::DumpStyleModuleWithFileAddress, lldb::eDescriptionLevelBrief, lldb::eDescriptionLevelFull, lldb::eDescriptionLevelInitial, lldb::eDescriptionLevelVerbose, lldb_private::Stream::EOL(), lldb_private::SymbolContext::function, lldb_private::BreakpointID::GetCanonicalReference(), lldb_private::ConstString::GetCString(), lldb_private::FileSpec::GetFilename(), GetHitCount(), GetID(), lldb_private::Stoppoint::GetID(), lldb_private::Function::GetMangled(), lldb_private::Mangled::GetMangledName(), lldb_private::Function::GetName(), lldb_private::Symbol::GetName(), lldb_private::CompileUnit::GetPrimaryFile(), lldb_private::Target::GetProcessSP(), lldb_private::Breakpoint::GetTarget(), lldb_private::Stream::Indent(), lldb_private::Stream::IndentLess(), lldb_private::Stream::IndentMore(), IsIndirect(), IsReExported(), IsResolved(), lldb_private::Address::IsSectionOffset(), lldb_private::LineEntry::line, lldb_private::SymbolContext::line_entry, m_address, m_bp_site_sp, m_options_up, m_owner, lldb_private::SymbolContext::module_sp, lldb_private::Stream::Printf(), lldb_private::Stream::PutCString(), lldb_private::Address::SetLoadAddress(), and lldb_private::SymbolContext::symbol.

Referenced by lldb_private::Breakpoint::GetDescription(), and ShouldStop().

◆ GetHitCount()

uint32_t lldb_private::BreakpointLocation::GetHitCount ( ) const
inline

Return the current Hit Count.

Definition at line 88 of file BreakpointLocation.h.

References lldb_private::StoppointHitCounter::GetValue(), and m_hit_counter.

Referenced by Dump(), and GetDescription().

◆ GetID()

lldb::break_id_t lldb_private::BreakpointLocation::GetID ( ) const
inline

Returns the breakpoint location ID.

Definition at line 283 of file BreakpointLocation.h.

References m_loc_id.

Referenced by ClearBreakpointSite(), Dump(), lldb_private::BreakpointIDList::FindAndReplaceIDRanges(), GetDescription(), and InvokeCallback().

◆ GetIgnoreCount()

uint32_t BreakpointLocation::GetIgnoreCount ( ) const

Return the current Ignore Count.

Returns
The number of breakpoint hits to be ignored.

Definition at line 333 of file BreakpointLocation.cpp.

References lldb_private::BreakpointOptions::eIgnoreCount, lldb_private::BreakpointOptions::GetIgnoreCount(), and GetOptionsSpecifyingKind().

Referenced by Dump().

◆ GetLoadAddress()

lldb::addr_t BreakpointLocation::GetLoadAddress ( ) const

Gets the load address for this breakpoint location.

Returns
Returns breakpoint location load address, LLDB_INVALID_ADDRESS if not yet set.

Definition at line 50 of file BreakpointLocation.cpp.

References lldb_private::Address::GetOpcodeLoadAddress(), lldb_private::Breakpoint::GetTarget(), m_address, and m_owner.

◆ GetLocationOptions()

BreakpointOptions & BreakpointLocation::GetLocationOptions ( )

Use this to set location specific breakpoint options.

It will create a copy of the containing breakpoint's options if that hasn't been done already

Returns
A reference to the breakpoint options.

Definition at line 366 of file BreakpointLocation.cpp.

References m_options_up.

Referenced by ClearCallback(), CommandObjectBreakpointModify::DoExecute(), SetAutoContinue(), SetCallback(), SetCondition(), SetEnabled(), SetIgnoreCount(), SetQueueName(), SetThreadIDInternal(), SetThreadIndex(), and SetThreadName().

◆ GetOptionsSpecifyingKind()

const BreakpointOptions & BreakpointLocation::GetOptionsSpecifyingKind ( BreakpointOptions::OptionKind  kind) const

Use this to access breakpoint options from this breakpoint location.

This will return the options that have a setting for the specified BreakpointOptions kind.

Parameters
[in]kindThe particular option you are looking up.
Returns
A pointer to the containing breakpoint's options if this location doesn't have its own copy.

Definition at line 54 of file BreakpointLocation.cpp.

References lldb_private::Breakpoint::GetOptions(), m_options_up, and m_owner.

Referenced by Dump(), GetConditionText(), GetIgnoreCount(), GetQueueName(), GetThreadID(), GetThreadIndex(), GetThreadName(), and ValidForThisThread().

◆ GetQueueName()

const char * BreakpointLocation::GetQueueName ( ) const

◆ GetTarget()

Target & BreakpointLocation::GetTarget ( )

Definition at line 66 of file BreakpointLocation.cpp.

References lldb_private::Breakpoint::GetTarget(), and m_owner.

Referenced by ConditionSaysStop().

◆ GetThreadID()

lldb::tid_t BreakpointLocation::GetThreadID ( )

◆ GetThreadIndex()

uint32_t BreakpointLocation::GetThreadIndex ( ) const

◆ GetThreadName()

const char * BreakpointLocation::GetThreadName ( ) const

◆ IgnoreCountShouldStop()

bool BreakpointLocation::IgnoreCountShouldStop ( )
protected

BreakpointLocation::IgnoreCountShouldStop can only be called once per stop.

This method checks first against the loc and then the owner. It also takes care of decrementing the ignore counters. If it returns false we should continue, otherwise stop.

Definition at line 351 of file BreakpointLocation.cpp.

References lldb_private::Breakpoint::DecrementIgnoreCount(), DecrementIgnoreCount(), GetBreakpoint(), lldb_private::Breakpoint::GetIgnoreCount(), m_options_up, and m_owner.

◆ InvokeCallback()

bool BreakpointLocation::InvokeCallback ( StoppointCallbackContext context)

Invoke the callback action when the breakpoint is hit.

Meant to be used by the BreakpointLocation class.

Parameters
[in]contextDescribed the breakpoint event.
Returns
true if the target should stop at this breakpoint and false not.

Definition at line 182 of file BreakpointLocation.cpp.

References GetID(), lldb_private::Stoppoint::GetID(), lldb_private::Breakpoint::InvokeCallback(), m_options_up, and m_owner.

Referenced by ShouldStop().

◆ IsAutoContinue()

bool BreakpointLocation::IsAutoContinue ( ) const

Check the AutoContinue state.

Returns
true if the breakpoint is set to auto-continue, false if not.

Definition at line 88 of file BreakpointLocation.cpp.

References lldb_private::BreakpointOptions::eAutoContinue, lldb_private::Breakpoint::IsAutoContinue(), m_options_up, and m_owner.

◆ IsCallbackSynchronous()

bool BreakpointLocation::IsCallbackSynchronous ( )

Report whether the callback for this location is synchronous or not.

Returns
true if the callback is synchronous and false if not.

Definition at line 189 of file BreakpointLocation.cpp.

References lldb_private::Breakpoint::GetOptions(), lldb_private::BreakpointOptions::IsCallbackSynchronous(), m_options_up, and m_owner.

◆ IsEnabled()

bool BreakpointLocation::IsEnabled ( ) const

Check the Enable/Disable state.

Returns
true if the breakpoint is enabled, false if disabled.

Definition at line 68 of file BreakpointLocation.cpp.

References lldb_private::Breakpoint::IsEnabled(), m_options_up, and m_owner.

Referenced by BumpHitCount(), ShouldStop(), and UndoBumpHitCount().

◆ IsIndirect()

bool lldb_private::BreakpointLocation::IsIndirect ( )
inline

Returns whether the address set in the breakpoint site for this location was found by resolving an indirect symbol.

Returns
true or false as given in the description above.

Definition at line 258 of file BreakpointLocation.h.

References m_is_indirect.

Referenced by GetDescription().

◆ IsReExported()

bool lldb_private::BreakpointLocation::IsReExported ( )
inline

Returns whether the address set in the breakpoint location was re-routed to the target of a re-exported symbol.

Returns
true or false as given in the description above.

Definition at line 267 of file BreakpointLocation.h.

References m_is_reexported.

Referenced by GetDescription().

◆ IsResolved()

bool BreakpointLocation::IsResolved ( ) const

Return whether this breakpoint location has a breakpoint site.

Returns
true if there was a breakpoint site for this breakpoint location, false otherwise.

Definition at line 426 of file BreakpointLocation.cpp.

References m_bp_site_sp.

Referenced by Dump(), GetDescription(), and ResolveBreakpointSite().

◆ operator=()

const BreakpointLocation & lldb_private::BreakpointLocation::operator= ( const BreakpointLocation )
privatedelete

◆ ResetHitCount()

void lldb_private::BreakpointLocation::ResetHitCount ( )
inline

Resets the current Hit Count.

Definition at line 91 of file BreakpointLocation.h.

References m_hit_counter, and lldb_private::StoppointHitCounter::Reset().

◆ ResolveBreakpointSite()

bool BreakpointLocation::ResolveBreakpointSite ( )

◆ SendBreakpointLocationChangedEvent()

void BreakpointLocation::SendBreakpointLocationChangedEvent ( lldb::BreakpointEventType  eventKind)
private

◆ SetAutoContinue()

void BreakpointLocation::SetAutoContinue ( bool  auto_continue)

If auto_continue is true, set the breakpoint to continue when hit.

Definition at line 96 of file BreakpointLocation.cpp.

References GetLocationOptions(), SendBreakpointLocationChangedEvent(), and lldb_private::BreakpointOptions::SetAutoContinue().

◆ SetBreakpointSite()

bool BreakpointLocation::SetBreakpointSite ( lldb::BreakpointSiteSP bp_site_sp)
protected

Set the breakpoint site for this location to bp_site_sp.

Parameters
[in]bp_site_spThe breakpoint site we are setting for this location.
Returns
true if we were successful at setting the breakpoint site, false otherwise.

Definition at line 455 of file BreakpointLocation.cpp.

References m_bp_site_sp, and SendBreakpointLocationChangedEvent().

◆ SetCallback() [1/2]

void BreakpointLocation::SetCallback ( BreakpointHitCallback  callback,
const lldb::BatonSP callback_baton_sp,
bool  is_synchronous 
)

Set the callback action invoked when the breakpoint is hit.

The callback will return a bool indicating whether the target should stop at this breakpoint or not.

Parameters
[in]callbackThe method that will get called when the breakpoint is hit.
[in]callback_baton_spA shared pointer to a Baton that provides the void * needed for the callback.
See also
lldb_private::Baton

Definition at line 205 of file BreakpointLocation.cpp.

References GetLocationOptions(), SendBreakpointLocationChangedEvent(), and lldb_private::BreakpointOptions::SetCallback().

◆ SetCallback() [2/2]

void BreakpointLocation::SetCallback ( BreakpointHitCallback  callback,
void *  baton,
bool  is_synchronous 
)

◆ SetCondition()

void BreakpointLocation::SetCondition ( const char *  condition)

Set the breakpoint location's condition.

Parameters
[in]conditionThe condition expression to evaluate when the breakpoint is hit.

Definition at line 216 of file BreakpointLocation.cpp.

References GetLocationOptions(), SendBreakpointLocationChangedEvent(), and lldb_private::BreakpointOptions::SetCondition().

◆ SetEnabled()

void BreakpointLocation::SetEnabled ( bool  enabled)

◆ SetIgnoreCount()

void BreakpointLocation::SetIgnoreCount ( uint32_t  n)

Set the breakpoint to ignore the next count breakpoint hits.

Parameters
[in]nThe number of breakpoint hits to ignore.

Definition at line 338 of file BreakpointLocation.cpp.

References GetLocationOptions(), SendBreakpointLocationChangedEvent(), and lldb_private::BreakpointOptions::SetIgnoreCount().

◆ SetIsIndirect()

void lldb_private::BreakpointLocation::SetIsIndirect ( bool  is_indirect)
inline

Definition at line 260 of file BreakpointLocation.h.

References m_is_indirect.

◆ SetIsReExported()

void lldb_private::BreakpointLocation::SetIsReExported ( bool  is_reexported)
inline

Definition at line 269 of file BreakpointLocation.h.

References m_is_reexported.

◆ SetQueueName()

void BreakpointLocation::SetQueueName ( const char *  queue_name)

◆ SetShouldResolveIndirectFunctions()

void lldb_private::BreakpointLocation::SetShouldResolveIndirectFunctions ( bool  do_resolve)
inlineprivate

Definition at line 373 of file BreakpointLocation.h.

References m_should_resolve_indirect_functions.

◆ SetThreadID()

void BreakpointLocation::SetThreadID ( lldb::tid_t  thread_id)

Set the valid thread to be checked when the breakpoint is hit.

Parameters
[in]thread_idIf this thread hits the breakpoint, we stop, otherwise not.

Definition at line 101 of file BreakpointLocation.cpp.

References SendBreakpointLocationChangedEvent(), and SetThreadIDInternal().

◆ SetThreadIDInternal()

void BreakpointLocation::SetThreadIDInternal ( lldb::tid_t  thread_id)
private

Updates the thread ID internally.

This method was created to handle actually mutating the thread ID internally because SetThreadID broadcasts an event in addition to mutating state. The constructor calls this instead of SetThreadID to avoid the broadcast.

Parameters
[in]thread_idThe new thread ID.

Definition at line 666 of file BreakpointLocation.cpp.

References GetLocationOptions(), LLDB_INVALID_THREAD_ID, m_options_up, and lldb_private::BreakpointOptions::SetThreadID().

Referenced by SetThreadID().

◆ SetThreadIndex()

void BreakpointLocation::SetThreadIndex ( uint32_t  index)

◆ SetThreadName()

void BreakpointLocation::SetThreadName ( const char *  thread_name)

◆ ShouldResolveIndirectFunctions()

bool lldb_private::BreakpointLocation::ShouldResolveIndirectFunctions ( )
inline

Returns whether we should resolve Indirect functions in setting the breakpoint site for this location.

Returns
true if the breakpoint SITE for this location should be set on the resolved location for Indirect functions.

Definition at line 249 of file BreakpointLocation.h.

References m_should_resolve_indirect_functions.

◆ ShouldStop()

bool BreakpointLocation::ShouldStop ( StoppointCallbackContext context)

Determines whether we should stop due to a hit at this breakpoint location.

Side Effects: This may evaluate the breakpoint condition, and run the callback. So this command may do a considerable amount of work.

Returns
true if this breakpoint location thinks we should stop, false otherwise.

Definition at line 387 of file BreakpointLocation.cpp.

References lldb_private::Breakpoints, lldb::eDescriptionLevelVerbose, lldb_private::StreamString::GetData(), GetDescription(), lldb_private::GetLog(), InvokeCallback(), lldb_private::StoppointCallbackContext::is_synchronous, IsEnabled(), and LLDB_LOGF.

◆ SwapLocation()

void BreakpointLocation::SwapLocation ( lldb::BreakpointLocationSP  swap_from)
private

◆ UndoBumpHitCount()

void BreakpointLocation::UndoBumpHitCount ( )
private

◆ ValidForThisThread()

bool BreakpointLocation::ValidForThisThread ( Thread thread)

Friends And Related Function Documentation

◆ BreakpointLocationList

friend class BreakpointLocationList
friend

Definition at line 287 of file BreakpointLocation.h.

◆ BreakpointSite

friend class BreakpointSite
friend

Definition at line 286 of file BreakpointLocation.h.

◆ Process

friend class Process
friend

Definition at line 288 of file BreakpointLocation.h.

◆ StopInfoBreakpoint

friend class StopInfoBreakpoint
friend

Definition at line 289 of file BreakpointLocation.h.

Member Data Documentation

◆ m_address

Address lldb_private::BreakpointLocation::m_address
private

The address defining this location.

Definition at line 354 of file BreakpointLocation.h.

Referenced by ConditionSaysStop(), Dump(), GetAddress(), GetDescription(), GetLoadAddress(), ResolveBreakpointSite(), and SwapLocation().

◆ m_bp_site_sp

lldb::BreakpointSiteSP lldb_private::BreakpointLocation::m_bp_site_sp
private

Our breakpoint site (it may be shared by more than one location.)

Definition at line 360 of file BreakpointLocation.h.

Referenced by ClearBreakpointSite(), Dump(), GetBreakpointSite(), GetDescription(), IsResolved(), ResolveBreakpointSite(), and SetBreakpointSite().

◆ m_condition_hash

size_t lldb_private::BreakpointLocation::m_condition_hash
private

For testing whether the condition source code changed.

Definition at line 367 of file BreakpointLocation.h.

Referenced by ConditionSaysStop().

◆ m_condition_mutex

std::mutex lldb_private::BreakpointLocation::m_condition_mutex
private

Guards parsing and evaluation of the condition, which could be evaluated by multiple processes.

Definition at line 364 of file BreakpointLocation.h.

Referenced by ConditionSaysStop().

◆ m_hit_counter

StoppointHitCounter lldb_private::BreakpointLocation::m_hit_counter
private

Number of times this breakpoint location has been hit.

Definition at line 370 of file BreakpointLocation.h.

Referenced by BumpHitCount(), GetHitCount(), ResetHitCount(), and UndoBumpHitCount().

◆ m_is_indirect

bool lldb_private::BreakpointLocation::m_is_indirect
private

Definition at line 353 of file BreakpointLocation.h.

Referenced by IsIndirect(), SetIsIndirect(), and SwapLocation().

◆ m_is_reexported

bool lldb_private::BreakpointLocation::m_is_reexported
private

Definition at line 352 of file BreakpointLocation.h.

Referenced by IsReExported(), SetIsReExported(), and SwapLocation().

◆ m_loc_id

lldb::break_id_t lldb_private::BreakpointLocation::m_loc_id
private

Breakpoint location ID.

Definition at line 369 of file BreakpointLocation.h.

Referenced by GetID().

◆ m_options_up

std::unique_ptr<BreakpointOptions> lldb_private::BreakpointLocation::m_options_up
private

◆ m_owner

Breakpoint& lldb_private::BreakpointLocation::m_owner
private

◆ m_should_resolve_indirect_functions

bool lldb_private::BreakpointLocation::m_should_resolve_indirect_functions
private

◆ m_user_expression_sp

lldb::UserExpressionSP lldb_private::BreakpointLocation::m_user_expression_sp
private

The compiled expression to use in testing our condition.

Definition at line 362 of file BreakpointLocation.h.

Referenced by ConditionSaysStop(), and SwapLocation().


The documentation for this class was generated from the following files: