LLDB mainline
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
lldb_private::Watchpoint Class Reference

#include <Watchpoint.h>

Inheritance diagram for lldb_private::Watchpoint:
Inheritance graph


class  WatchpointEventData
class  WatchpointVariableBaton
struct  WatchpointVariableContext
 Represents the context of a watchpoint variable. More...

Public Member Functions

 Watchpoint (Target &target, lldb::addr_t addr, uint32_t size, const CompilerType *type, bool hardware=true)
 ~Watchpoint () override
bool IsEnabled () const
void SetEnabled (bool enabled, bool notify=true)
bool IsHardware () const override
bool ShouldStop (StoppointCallbackContext *context) override
bool WatchpointRead () const
bool WatchpointWrite () const
bool WatchpointModify () const
uint32_t GetIgnoreCount () const
void SetIgnoreCount (uint32_t n)
void SetWatchpointType (uint32_t type, bool notify=true)
void SetDeclInfo (const std::string &str)
std::string GetWatchSpec ()
void SetWatchSpec (const std::string &str)
bool WatchedValueReportable (const ExecutionContext &exe_ctx)
bool IsWatchVariable () const
void SetWatchVariable (bool val)
bool CaptureWatchedValue (const ExecutionContext &exe_ctx)
bool SetupVariableWatchpointDisabler (lldb::StackFrameSP frame_sp) const
void GetDescription (Stream *s, lldb::DescriptionLevel level)
void Dump (Stream *s) const override
bool DumpSnapshots (Stream *s, const char *prefix=nullptr) const
void DumpWithLevel (Stream *s, lldb::DescriptionLevel description_level) const
TargetGetTarget ()
const StatusGetError ()
WatchpointOptionsGetOptions ()
 Returns the WatchpointOptions structure set for this watchpoint.
void SetCallback (WatchpointHitCallback callback, void *callback_baton, bool is_synchronous=false)
 Set the callback action invoked when the watchpoint is hit.
void SetCallback (WatchpointHitCallback callback, const lldb::BatonSP &callback_baton_sp, bool is_synchronous=false)
void ClearCallback ()
bool InvokeCallback (StoppointCallbackContext *context)
 Invoke the callback action when the watchpoint is hit.
void SetCondition (const char *condition)
 Set the watchpoint's condition.
const char * GetConditionText () const
 Return a pointer to the text of the condition expression.
void TurnOnEphemeralMode ()
void TurnOffEphemeralMode ()
bool IsDisabledDuringEphemeralMode ()
const CompilerTypeGetCompilerType ()
- Public Member Functions inherited from lldb_private::StoppointSite
 StoppointSite (lldb::break_id_t bid, lldb::addr_t m_addr, bool hardware)
 StoppointSite (lldb::break_id_t bid, lldb::addr_t m_addr, uint32_t byte_size, bool hardware)
virtual ~StoppointSite ()=default
virtual lldb::addr_t GetLoadAddress () const
virtual void SetLoadAddress (lldb::addr_t addr)
uint32_t GetByteSize () const
uint32_t GetHitCount () const
void ResetHitCount ()
bool HardwareRequired () const
virtual bool IsHardware () const =0
virtual bool ShouldStop (StoppointCallbackContext *context)=0
virtual void Dump (Stream *stream) const =0
lldb::break_id_t GetID () const

Static Public Member Functions

static bool VariableWatchpointDisabler (void *baton, lldb_private::StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id)
 Callback routine to disable the watchpoint set on a local variable when it goes out of scope.

Private Member Functions

void ResetHistoricValues ()
void UndoHitCount ()
void SetID (lldb::watch_id_t id)
void SendWatchpointChangedEvent (lldb::WatchpointEventType eventKind)
 Watchpoint (const Watchpoint &)=delete
const Watchpointoperator= (const Watchpoint &)=delete

Private Attributes

bool m_enabled
bool m_is_hardware
bool m_is_watch_variable
bool m_is_ephemeral
uint32_t m_disabled_count
uint32_t m_watch_read: 1
uint32_t m_watch_write: 1
uint32_t m_watch_modify: 1
uint32_t m_ignore_count
std::string m_decl_str
std::string m_watch_spec_str
lldb::ValueObjectSP m_old_value_sp
lldb::ValueObjectSP m_new_value_sp
CompilerType m_type
Status m_error
WatchpointOptions m_options
std::unique_ptr< UserExpressionm_condition_up


class Target
class WatchpointList
class StopInfoWatchpoint

Additional Inherited Members

- Protected Attributes inherited from lldb_private::StoppointSite
lldb::break_id_t m_id
 Stoppoint site ID.
lldb::addr_t m_addr
 The load address of this stop point.
bool m_is_hardware_required
 True if this point is required to use hardware (which may fail due to the lack of resources).
uint32_t m_byte_size
 The size in bytes of stoppoint, e.g.
StoppointHitCounter m_hit_counter
 Number of times this breakpoint/watchpoint has been hit.

Detailed Description

Definition at line 24 of file Watchpoint.h.

Constructor & Destructor Documentation

◆ Watchpoint() [1/2]

Watchpoint::Watchpoint ( Target target,
lldb::addr_t  addr,
uint32_t  size,
const CompilerType type,
bool  hardware = true 

◆ ~Watchpoint()

Watchpoint::~Watchpoint ( )

◆ Watchpoint() [2/2]

lldb_private::Watchpoint::Watchpoint ( const Watchpoint )

Member Function Documentation

◆ CaptureWatchedValue()

bool Watchpoint::CaptureWatchedValue ( const ExecutionContext exe_ctx)

◆ ClearCallback()

void Watchpoint::ClearCallback ( )

◆ Dump()

void Watchpoint::Dump ( Stream s) const

Implements lldb_private::StoppointSite.

Definition at line 269 of file Watchpoint.cpp.

References DumpWithLevel(), and lldb::eDescriptionLevelBrief.

◆ DumpSnapshots()

bool Watchpoint::DumpSnapshots ( Stream s,
const char *  prefix = nullptr 
) const

◆ DumpWithLevel()

void Watchpoint::DumpWithLevel ( Stream s,
lldb::DescriptionLevel  description_level 
) const

◆ GetCompilerType()

const CompilerType & lldb_private::Watchpoint::GetCompilerType ( )

Definition at line 189 of file Watchpoint.h.

References m_type.

◆ GetConditionText()

const char * Watchpoint::GetConditionText ( ) const

Return a pointer to the text of the condition expression.

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

Definition at line 474 of file Watchpoint.cpp.

References m_condition_up.

Referenced by DumpWithLevel().

◆ GetDescription()

void Watchpoint::GetDescription ( Stream s,
lldb::DescriptionLevel  level 

Definition at line 265 of file Watchpoint.cpp.

References DumpWithLevel().

Referenced by AddWatchpointDescription().

◆ GetError()

const Status & lldb_private::Watchpoint::GetError ( )

Definition at line 132 of file Watchpoint.h.

References m_error.

◆ GetIgnoreCount()

uint32_t Watchpoint::GetIgnoreCount ( ) const

Definition at line 442 of file Watchpoint.cpp.

References m_ignore_count.

Referenced by DumpWithLevel().

◆ GetOptions()

WatchpointOptions * lldb_private::Watchpoint::GetOptions ( )

Returns the WatchpointOptions structure set for this watchpoint.

A pointer to this watchpoint's WatchpointOptions.

Definition at line 138 of file Watchpoint.h.

References m_options.

Referenced by CommandObjectWatchpointCommandList::DoExecute().

◆ GetTarget()

Target & lldb_private::Watchpoint::GetTarget ( )

Definition at line 131 of file Watchpoint.h.

References m_target.

Referenced by SendWatchpointChangedEvent().

◆ GetWatchSpec()

std::string Watchpoint::GetWatchSpec ( )

Definition at line 187 of file Watchpoint.cpp.

References m_watch_spec_str.

◆ InvokeCallback()

bool Watchpoint::InvokeCallback ( StoppointCallbackContext context)

Invoke the callback action when the watchpoint is hit.

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

Definition at line 451 of file Watchpoint.cpp.

References lldb_private::StoppointSite::GetID(), lldb_private::WatchpointOptions::InvokeCallback(), and m_options.

◆ IsDisabledDuringEphemeralMode()

bool Watchpoint::IsDisabledDuringEphemeralMode ( )

Definition at line 403 of file Watchpoint.cpp.

References m_disabled_count, and m_is_ephemeral.

◆ IsEnabled()

bool Watchpoint::IsEnabled ( ) const

Definition at line 388 of file Watchpoint.cpp.

References m_enabled.

Referenced by DumpWithLevel(), and ShouldStop().

◆ IsHardware()

bool Watchpoint::IsHardware ( ) const

◆ IsWatchVariable()

bool Watchpoint::IsWatchVariable ( ) const

Definition at line 198 of file Watchpoint.cpp.

References m_is_watch_variable.

◆ operator=()

const Watchpoint & lldb_private::Watchpoint::operator= ( const Watchpoint )

◆ ResetHistoricValues()

void lldb_private::Watchpoint::ResetHistoricValues ( )

Definition at line 196 of file Watchpoint.h.

References m_new_value_sp, and m_old_value_sp.

◆ SendWatchpointChangedEvent()

void Watchpoint::SendWatchpointChangedEvent ( lldb::WatchpointEventType  eventKind)

◆ SetCallback() [1/2]

void Watchpoint::SetCallback ( WatchpointHitCallback  callback,
const lldb::BatonSP callback_baton_sp,
bool  is_synchronous = false 

◆ SetCallback() [2/2]

void Watchpoint::SetCallback ( WatchpointHitCallback  callback,
void *  callback_baton,
bool  is_synchronous = false 

Set the callback action invoked when the watchpoint is hit.

[in]callbackThe method that will get called when the watchpoint is hit.
[in]callback_batonA void * pointer that will get passed back to the callback function.
[in]is_synchronousIf true the callback will be run on the private event thread before the stop event gets reported. If false, the callback will get handled on the public event thread after the stop has been posted.

Definition at line 73 of file Watchpoint.cpp.

References m_options, SendWatchpointChangedEvent(), and lldb_private::WatchpointOptions::SetCallback().

◆ SetCondition()

void Watchpoint::SetCondition ( const char *  condition)

Set the watchpoint's condition.

[in]conditionThe condition expression to evaluate when the watchpoint is hit. Pass in nullptr to clear the condition.

Definition at line 455 of file Watchpoint.cpp.

References lldb::eLanguageTypeUnknown, lldb_private::Expression::eResultTypeAny, error(), lldb_private::Target::GetUserExpressionForLanguage(), m_condition_up, m_target, and SendWatchpointChangedEvent().

◆ SetDeclInfo()

void Watchpoint::SetDeclInfo ( const std::string &  str)

Definition at line 185 of file Watchpoint.cpp.

References m_decl_str.

◆ SetEnabled()

void Watchpoint::SetEnabled ( bool  enabled,
bool  notify = true 

◆ SetID()

void lldb_private::Watchpoint::SetID ( lldb::watch_id_t  id)

Definition at line 231 of file Watchpoint.h.

References lldb_private::StoppointSite::m_id.

◆ SetIgnoreCount()

void Watchpoint::SetIgnoreCount ( uint32_t  n)

Definition at line 444 of file Watchpoint.cpp.

References m_ignore_count, and SendWatchpointChangedEvent().

◆ SetupVariableWatchpointDisabler()

bool Watchpoint::SetupVariableWatchpointDisabler ( lldb::StackFrameSP  frame_sp) const

◆ SetWatchpointType()

void Watchpoint::SetWatchpointType ( uint32_t  type,
bool  notify = true 

◆ SetWatchSpec()

void Watchpoint::SetWatchSpec ( const std::string &  str)

Definition at line 189 of file Watchpoint.cpp.

References m_watch_spec_str.

◆ SetWatchVariable()

void Watchpoint::SetWatchVariable ( bool  val)

Definition at line 200 of file Watchpoint.cpp.

References m_is_watch_variable.

◆ ShouldStop()

bool Watchpoint::ShouldStop ( StoppointCallbackContext context)

◆ TurnOffEphemeralMode()

void Watchpoint::TurnOffEphemeralMode ( )

Definition at line 397 of file Watchpoint.cpp.

References m_disabled_count, and m_is_ephemeral.

◆ TurnOnEphemeralMode()

void Watchpoint::TurnOnEphemeralMode ( )

Definition at line 395 of file Watchpoint.cpp.

References m_is_ephemeral.

◆ UndoHitCount()

void lldb_private::Watchpoint::UndoHitCount ( )

◆ VariableWatchpointDisabler()

bool Watchpoint::VariableWatchpointDisabler ( void *  baton,
lldb_private::StoppointCallbackContext context,
lldb::user_id_t  break_id,
lldb::user_id_t  break_loc_id 

◆ WatchedValueReportable()

bool Watchpoint::WatchedValueReportable ( const ExecutionContext exe_ctx)

◆ WatchpointModify()

bool Watchpoint::WatchpointModify ( ) const

Definition at line 440 of file Watchpoint.cpp.

References m_watch_modify.

◆ WatchpointRead()

bool Watchpoint::WatchpointRead ( ) const

Definition at line 436 of file Watchpoint.cpp.

References m_watch_read.

◆ WatchpointWrite()

bool Watchpoint::WatchpointWrite ( ) const

Definition at line 438 of file Watchpoint.cpp.

References m_watch_write.

Friends And Related Function Documentation

◆ StopInfoWatchpoint

friend class StopInfoWatchpoint

Definition at line 194 of file Watchpoint.h.

◆ Target

friend class Target

Definition at line 192 of file Watchpoint.h.

◆ WatchpointList

friend class WatchpointList

Definition at line 193 of file Watchpoint.h.

Member Data Documentation

◆ m_condition_up

std::unique_ptr<UserExpression> lldb_private::Watchpoint::m_condition_up

Definition at line 229 of file Watchpoint.h.

Referenced by GetConditionText(), and SetCondition().

◆ m_decl_str

std::string lldb_private::Watchpoint::m_decl_str

Definition at line 220 of file Watchpoint.h.

Referenced by DumpWithLevel(), and SetDeclInfo().

◆ m_disabled_count

uint32_t lldb_private::Watchpoint::m_disabled_count

Definition at line 211 of file Watchpoint.h.

Referenced by IsDisabledDuringEphemeralMode(), SetEnabled(), and TurnOffEphemeralMode().

◆ m_enabled

bool lldb_private::Watchpoint::m_enabled

Definition at line 204 of file Watchpoint.h.

Referenced by IsEnabled(), and SetEnabled().

◆ m_error

Status lldb_private::Watchpoint::m_error

Definition at line 225 of file Watchpoint.h.

Referenced by GetError().

◆ m_ignore_count

uint32_t lldb_private::Watchpoint::m_ignore_count

Definition at line 219 of file Watchpoint.h.

Referenced by GetIgnoreCount(), and SetIgnoreCount().

◆ m_is_ephemeral

bool lldb_private::Watchpoint::m_is_ephemeral

◆ m_is_hardware

bool lldb_private::Watchpoint::m_is_hardware

Definition at line 205 of file Watchpoint.h.

Referenced by IsHardware().

◆ m_is_watch_variable

bool lldb_private::Watchpoint::m_is_watch_variable

Definition at line 206 of file Watchpoint.h.

Referenced by IsWatchVariable(), and SetWatchVariable().

◆ m_new_value_sp

lldb::ValueObjectSP lldb_private::Watchpoint::m_new_value_sp

◆ m_old_value_sp

lldb::ValueObjectSP lldb_private::Watchpoint::m_old_value_sp

Definition at line 222 of file Watchpoint.h.

Referenced by CaptureWatchedValue(), DumpSnapshots(), and ResetHistoricValues().

◆ m_options

WatchpointOptions lldb_private::Watchpoint::m_options

Definition at line 227 of file Watchpoint.h.

Referenced by ClearCallback(), DumpWithLevel(), GetOptions(), InvokeCallback(), and SetCallback().

◆ m_target

Target& lldb_private::Watchpoint::m_target

Definition at line 203 of file Watchpoint.h.

Referenced by DumpWithLevel(), GetTarget(), SetCondition(), and Watchpoint().

◆ m_type

CompilerType lldb_private::Watchpoint::m_type

◆ m_watch_modify

uint32_t lldb_private::Watchpoint::m_watch_modify

◆ m_watch_read

uint32_t lldb_private::Watchpoint::m_watch_read

◆ m_watch_spec_str

std::string lldb_private::Watchpoint::m_watch_spec_str

Definition at line 221 of file Watchpoint.h.

Referenced by DumpWithLevel(), GetWatchSpec(), and SetWatchSpec().

◆ m_watch_write

uint32_t lldb_private::Watchpoint::m_watch_write

Definition at line 217 of file Watchpoint.h.

Referenced by DumpSnapshots(), DumpWithLevel(), SetWatchpointType(), and WatchpointWrite().

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