LLDB mainline
|
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>
Public Member Functions | |
~BreakpointLocation () | |
lldb::addr_t | GetLoadAddress () const |
Gets the load address for this breakpoint location. | |
Address & | GetAddress () |
Gets the Address for this breakpoint location. | |
Breakpoint & | GetBreakpoint () |
Gets the Breakpoint that created this breakpoint location. | |
Target & | GetTarget () |
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. | |
BreakpointOptions & | GetLocationOptions () |
Use this to set location specific breakpoint options. | |
const BreakpointOptions & | GetOptionsSpecifyingKind (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 BreakpointLocation & | operator= (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. | |
Breakpoint & | m_owner |
The breakpoint that produced this object. | |
std::unique_ptr< BreakpointOptions > | m_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 |
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.
BreakpointLocation::~BreakpointLocation | ( | ) |
Definition at line 48 of file BreakpointLocation.cpp.
References ClearBreakpointSite().
|
private |
Constructor.
[in] | owner | A back pointer to the breakpoint that owns this location. |
[in] | addr | The Address defining this location. |
[in] | tid | The thread for which this breakpoint location is valid, or LLDB_INVALID_THREAD_ID if it is valid for all threads. |
[in] | hardware | true if a hardware breakpoint is requested. |
|
privatedelete |
|
private |
Definition at line 410 of file BreakpointLocation.cpp.
References lldb_private::StoppointHitCounter::Increment(), IsEnabled(), lldb_private::Breakpoint::m_hit_counter, m_hit_counter, and m_owner.
bool BreakpointLocation::ClearBreakpointSite | ( | ) |
Clear this breakpoint location's breakpoint site - for instance when disabling the breakpoint.
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().
void BreakpointLocation::ClearCallback | ( | ) |
Definition at line 212 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::ClearCallback(), and GetLocationOptions().
bool BreakpointLocation::ConditionSaysStop | ( | ExecutionContext & | exe_ctx, |
Status & | error | ||
) |
Definition at line 226 of file BreakpointLocation.cpp.
References lldb_private::Breakpoints, lldb_private::Address::CalculateSymbolContextCompileUnit(), lldb_private::DiagnosticManager::Clear(), lldb_private::eExecutionPolicyOnlyWhenNeeded, lldb::eExpressionCompleted, lldb::eLanguageTypeUnknown, lldb_private::Expression::eResultTypeAny, error(), GetConditionText(), lldb_private::CompileUnit::GetLanguage(), lldb_private::GetLog(), lldb_private::DiagnosticManager::GetString(), GetTarget(), LLDB_LOGF, m_address, m_condition_hash, m_condition_mutex, m_user_expression_sp, lldb_private::EvaluateExpressionOptions::SetIgnoreBreakpoints(), lldb_private::EvaluateExpressionOptions::SetSuppressPersistentResult(), lldb_private::EvaluateExpressionOptions::SetTryAllThreads(), and lldb_private::EvaluateExpressionOptions::SetUnwindOnError().
|
protected |
Definition at line 343 of file BreakpointLocation.cpp.
References m_options_up.
Referenced by IgnoreCountShouldStop().
void BreakpointLocation::Dump | ( | Stream * | s | ) | const |
Standard "Dump" method. At present it does nothing.
Definition at line 622 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eIgnoreCount, lldb_private::BreakpointOptions::eThreadSpec, GetHitCount(), GetID(), GetIgnoreCount(), lldb_private::Address::GetOpcodeLoadAddress(), GetOptionsSpecifyingKind(), lldb_private::Breakpoint::GetTarget(), lldb_private::BreakpointOptions::GetThreadSpecNoCreate(), lldb_private::ThreadSpec::GetTID(), lldb_private::Breakpoint::IsEnabled(), IsResolved(), m_address, m_bp_site_sp, m_options_up, m_owner, and lldb_private::Stream::Printf().
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.
[in] | location | The location to compare against. |
Address & BreakpointLocation::GetAddress | ( | ) |
Gets the Address for this breakpoint location.
Definition at line 62 of file BreakpointLocation.cpp.
References m_address.
Referenced by lldb_private::BreakpointLocationList::RemoveInvalidLocations().
Breakpoint & BreakpointLocation::GetBreakpoint | ( | ) |
Gets the Breakpoint that created this breakpoint location.
Definition at line 64 of file BreakpointLocation.cpp.
References m_owner.
Referenced by ClearBreakpointSite(), and IgnoreCountShouldStop().
lldb::BreakpointSiteSP BreakpointLocation::GetBreakpointSite | ( | ) | const |
Definition at line 430 of file BreakpointLocation.cpp.
References m_bp_site_sp.
const char * BreakpointLocation::GetConditionText | ( | size_t * | hash = nullptr | ) | const |
Return a pointer to the text of the condition expression.
Definition at line 221 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eCondition, lldb_private::BreakpointOptions::GetConditionText(), and GetOptionsSpecifyingKind().
Referenced by ConditionSaysStop().
void BreakpointLocation::GetDescription | ( | Stream * | s, |
lldb::DescriptionLevel | level | ||
) |
Print a description of this breakpoint location to the stream s.
[in] | s | The stream to which to print the description. |
[in] | level | The description level that indicates the detail level to provide. |
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().
|
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().
|
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().
uint32_t BreakpointLocation::GetIgnoreCount | ( | ) | const |
Return the current Ignore Count.
Definition at line 333 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eIgnoreCount, lldb_private::BreakpointOptions::GetIgnoreCount(), and GetOptionsSpecifyingKind().
Referenced by Dump().
lldb::addr_t BreakpointLocation::GetLoadAddress | ( | ) | const |
Gets the load address for this breakpoint location.
Definition at line 50 of file BreakpointLocation.cpp.
References lldb_private::Address::GetOpcodeLoadAddress(), lldb_private::Breakpoint::GetTarget(), m_address, and m_owner.
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
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().
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.
[in] | kind | The particular option you are looking up. |
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().
const char * BreakpointLocation::GetQueueName | ( | ) | const |
Definition at line 172 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eThreadSpec, GetOptionsSpecifyingKind(), lldb_private::ThreadSpec::GetQueueName(), and lldb_private::BreakpointOptions::GetThreadSpecNoCreate().
Target & BreakpointLocation::GetTarget | ( | ) |
Definition at line 66 of file BreakpointLocation.cpp.
References lldb_private::Breakpoint::GetTarget(), and m_owner.
Referenced by ConditionSaysStop().
lldb::tid_t BreakpointLocation::GetThreadID | ( | ) |
Definition at line 106 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eThreadSpec, GetOptionsSpecifyingKind(), lldb_private::BreakpointOptions::GetThreadSpecNoCreate(), lldb_private::ThreadSpec::GetTID(), and LLDB_INVALID_THREAD_ID.
uint32_t BreakpointLocation::GetThreadIndex | ( | ) | const |
Definition at line 128 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eThreadSpec, lldb_private::ThreadSpec::GetIndex(), GetOptionsSpecifyingKind(), and lldb_private::BreakpointOptions::GetThreadSpecNoCreate().
const char * BreakpointLocation::GetThreadName | ( | ) | const |
Definition at line 150 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eThreadSpec, lldb_private::ThreadSpec::GetName(), GetOptionsSpecifyingKind(), and lldb_private::BreakpointOptions::GetThreadSpecNoCreate().
|
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.
bool BreakpointLocation::InvokeCallback | ( | StoppointCallbackContext * | context | ) |
Invoke the callback action when the breakpoint is hit.
Meant to be used by the BreakpointLocation class.
[in] | context | Described the breakpoint event. |
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().
bool BreakpointLocation::IsAutoContinue | ( | ) | const |
Check the AutoContinue state.
Definition at line 88 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eAutoContinue, lldb_private::Breakpoint::IsAutoContinue(), m_options_up, and m_owner.
bool BreakpointLocation::IsCallbackSynchronous | ( | ) |
Report whether the callback for this location is synchronous or not.
Definition at line 189 of file BreakpointLocation.cpp.
References lldb_private::Breakpoint::GetOptions(), lldb_private::BreakpointOptions::IsCallbackSynchronous(), m_options_up, and m_owner.
bool BreakpointLocation::IsEnabled | ( | ) | const |
Check the Enable/Disable state.
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().
|
inline |
Returns whether the address set in the breakpoint site for this location was found by resolving an indirect symbol.
Definition at line 258 of file BreakpointLocation.h.
References m_is_indirect.
Referenced by GetDescription().
|
inline |
Returns whether the address set in the breakpoint location was re-routed to the target of a re-exported symbol.
Definition at line 267 of file BreakpointLocation.h.
References m_is_reexported.
Referenced by GetDescription().
bool BreakpointLocation::IsResolved | ( | ) | const |
Return whether this breakpoint location has a breakpoint site.
Definition at line 426 of file BreakpointLocation.cpp.
References m_bp_site_sp.
Referenced by Dump(), GetDescription(), and ResolveBreakpointSite().
|
privatedelete |
|
inline |
Resets the current Hit Count.
Definition at line 91 of file BreakpointLocation.h.
References m_hit_counter, and lldb_private::StoppointHitCounter::Reset().
bool BreakpointLocation::ResolveBreakpointSite | ( | ) |
Try to resolve the breakpoint site for this location.
Definition at line 434 of file BreakpointLocation.cpp.
References lldb_private::Breakpoints, lldb_private::Process::CreateBreakpointSite(), lldb_private::GetLog(), lldb_private::Address::GetOpcodeLoadAddress(), lldb_private::Target::GetProcessSP(), lldb_private::Breakpoint::GetTarget(), lldb_private::Breakpoint::IsHardware(), IsResolved(), LLDB_INVALID_BREAK_ID, m_address, m_bp_site_sp, m_owner, and lldb_private::Log::Warning().
Referenced by SetEnabled().
|
private |
Definition at line 645 of file BreakpointLocation.cpp.
References lldb_private::Broadcaster::BroadcastEvent(), lldb_private::Target::eBroadcastBitBreakpointChanged, lldb_private::Broadcaster::EventTypeHasListeners(), lldb_private::Breakpoint::GetTarget(), lldb_private::Breakpoint::IsInternal(), and m_owner.
Referenced by SetAutoContinue(), SetBreakpointSite(), SetCallback(), SetCondition(), SetEnabled(), SetIgnoreCount(), SetQueueName(), SetThreadID(), SetThreadIndex(), and SetThreadName().
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().
|
protected |
Set the breakpoint site for this location to bp_site_sp.
[in] | bp_site_sp | The breakpoint site we are setting for this location. |
Definition at line 455 of file BreakpointLocation.cpp.
References m_bp_site_sp, and SendBreakpointLocationChangedEvent().
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.
[in] | callback | The method that will get called when the breakpoint is hit. |
[in] | callback_baton_sp | A shared pointer to a Baton that provides the void * needed for the callback. |
Definition at line 205 of file BreakpointLocation.cpp.
References GetLocationOptions(), SendBreakpointLocationChangedEvent(), and lldb_private::BreakpointOptions::SetCallback().
void BreakpointLocation::SetCallback | ( | BreakpointHitCallback | callback, |
void * | baton, | ||
bool | is_synchronous | ||
) |
Definition at line 196 of file BreakpointLocation.cpp.
References GetLocationOptions(), SendBreakpointLocationChangedEvent(), and lldb_private::BreakpointOptions::SetCallback().
void BreakpointLocation::SetCondition | ( | const char * | condition | ) |
Set the breakpoint location's condition.
[in] | condition | The 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().
void BreakpointLocation::SetEnabled | ( | bool | enabled | ) |
If enabled is true, enable the breakpoint, if false disable it.
Definition at line 77 of file BreakpointLocation.cpp.
References ClearBreakpointSite(), GetLocationOptions(), ResolveBreakpointSite(), SendBreakpointLocationChangedEvent(), and lldb_private::BreakpointOptions::SetEnabled().
Referenced by CommandObjectBreakpointEnable::DoExecute(), and CommandObjectBreakpointDelete::DoExecute().
void BreakpointLocation::SetIgnoreCount | ( | uint32_t | n | ) |
Set the breakpoint to ignore the next count breakpoint hits.
[in] | n | The number of breakpoint hits to ignore. |
Definition at line 338 of file BreakpointLocation.cpp.
References GetLocationOptions(), SendBreakpointLocationChangedEvent(), and lldb_private::BreakpointOptions::SetIgnoreCount().
|
inline |
Definition at line 260 of file BreakpointLocation.h.
References m_is_indirect.
|
inline |
Definition at line 269 of file BreakpointLocation.h.
References m_is_reexported.
void BreakpointLocation::SetQueueName | ( | const char * | queue_name | ) |
Definition at line 160 of file BreakpointLocation.cpp.
References GetLocationOptions(), lldb_private::BreakpointOptions::GetThreadSpec(), m_options_up, SendBreakpointLocationChangedEvent(), and lldb_private::ThreadSpec::SetQueueName().
|
inlineprivate |
Definition at line 373 of file BreakpointLocation.h.
References m_should_resolve_indirect_functions.
void BreakpointLocation::SetThreadID | ( | lldb::tid_t | thread_id | ) |
Set the valid thread to be checked when the breakpoint is hit.
[in] | thread_id | If this thread hits the breakpoint, we stop, otherwise not. |
Definition at line 101 of file BreakpointLocation.cpp.
References SendBreakpointLocationChangedEvent(), and SetThreadIDInternal().
|
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.
[in] | thread_id | The 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().
void BreakpointLocation::SetThreadIndex | ( | uint32_t | index | ) |
Definition at line 116 of file BreakpointLocation.cpp.
References GetLocationOptions(), lldb_private::BreakpointOptions::GetThreadSpec(), m_options_up, SendBreakpointLocationChangedEvent(), and lldb_private::ThreadSpec::SetIndex().
void BreakpointLocation::SetThreadName | ( | const char * | thread_name | ) |
Definition at line 138 of file BreakpointLocation.cpp.
References GetLocationOptions(), lldb_private::BreakpointOptions::GetThreadSpec(), m_options_up, SendBreakpointLocationChangedEvent(), and lldb_private::ThreadSpec::SetName().
|
inline |
Returns whether we should resolve Indirect functions in setting the breakpoint site for this location.
Definition at line 249 of file BreakpointLocation.h.
References m_should_resolve_indirect_functions.
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.
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.
|
private |
Definition at line 657 of file BreakpointLocation.cpp.
References m_address, m_is_indirect, m_is_reexported, m_should_resolve_indirect_functions, and m_user_expression_sp.
|
private |
Definition at line 418 of file BreakpointLocation.cpp.
References lldb_private::StoppointHitCounter::Decrement(), IsEnabled(), lldb_private::Breakpoint::m_hit_counter, m_hit_counter, and m_owner.
bool BreakpointLocation::ValidForThisThread | ( | Thread & | thread | ) |
Definition at line 376 of file BreakpointLocation.cpp.
References lldb_private::BreakpointOptions::eThreadSpec, GetOptionsSpecifyingKind(), and lldb_private::Thread::MatchesSpec().
|
friend |
Definition at line 287 of file BreakpointLocation.h.
|
friend |
Definition at line 286 of file BreakpointLocation.h.
|
friend |
Definition at line 288 of file BreakpointLocation.h.
|
friend |
Definition at line 289 of file BreakpointLocation.h.
|
private |
The address defining this location.
Definition at line 354 of file BreakpointLocation.h.
Referenced by ConditionSaysStop(), Dump(), GetAddress(), GetDescription(), GetLoadAddress(), ResolveBreakpointSite(), and SwapLocation().
|
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().
|
private |
For testing whether the condition source code changed.
Definition at line 367 of file BreakpointLocation.h.
Referenced by ConditionSaysStop().
|
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().
|
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().
|
private |
Definition at line 353 of file BreakpointLocation.h.
Referenced by IsIndirect(), SetIsIndirect(), and SwapLocation().
|
private |
Definition at line 352 of file BreakpointLocation.h.
Referenced by IsReExported(), SetIsReExported(), and SwapLocation().
|
private |
|
private |
Breakpoint options pointer, nullptr if we're using our breakpoint's options.
Definition at line 356 of file BreakpointLocation.h.
Referenced by DecrementIgnoreCount(), Dump(), GetDescription(), GetLocationOptions(), GetOptionsSpecifyingKind(), IgnoreCountShouldStop(), InvokeCallback(), IsAutoContinue(), IsCallbackSynchronous(), IsEnabled(), SetQueueName(), SetThreadIDInternal(), SetThreadIndex(), and SetThreadName().
|
private |
The breakpoint that produced this object.
Definition at line 355 of file BreakpointLocation.h.
Referenced by BumpHitCount(), ClearBreakpointSite(), Dump(), GetBreakpoint(), GetDescription(), GetLoadAddress(), GetOptionsSpecifyingKind(), GetTarget(), IgnoreCountShouldStop(), InvokeCallback(), IsAutoContinue(), IsCallbackSynchronous(), IsEnabled(), ResolveBreakpointSite(), SendBreakpointLocationChangedEvent(), and UndoBumpHitCount().
|
private |
Definition at line 351 of file BreakpointLocation.h.
Referenced by SetShouldResolveIndirectFunctions(), ShouldResolveIndirectFunctions(), and SwapLocation().
|
private |
The compiled expression to use in testing our condition.
Definition at line 362 of file BreakpointLocation.h.
Referenced by ConditionSaysStop(), and SwapLocation().