LLDB mainline
|
#include <Watchpoint.h>
Classes | |
class | WatchpointEventData |
Public Member Functions | |
Watchpoint (Target &target, lldb::addr_t addr, uint32_t size, const CompilerType *type, bool hardware=true) | |
~Watchpoint () override | |
void | IncrementFalseAlarmsAndReviseHitCount () |
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 |
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 | IsWatchVariable () const |
void | SetWatchVariable (bool val) |
bool | CaptureWatchedValue (const ExecutionContext &exe_ctx) |
void | GetDescription (Stream *s, lldb::DescriptionLevel level) |
void | Dump (Stream *s) const override |
void | DumpSnapshots (Stream *s, const char *prefix=nullptr) const |
void | DumpWithLevel (Stream *s, lldb::DescriptionLevel description_level) const |
Target & | GetTarget () |
const Status & | GetError () |
WatchpointOptions * | GetOptions () |
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 CompilerType & | GetCompilerType () |
![]() | |
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 |
uint32_t | GetHardwareIndex () const |
void | SetHardwareIndex (uint32_t index) |
virtual bool | ShouldStop (StoppointCallbackContext *context)=0 |
virtual void | Dump (Stream *stream) const =0 |
lldb::break_id_t | GetID () const |
Private Member Functions | |
void | ResetHistoricValues () |
void | UndoHitCount () |
void | SetID (lldb::watch_id_t id) |
void | SendWatchpointChangedEvent (lldb::WatchpointEventType eventKind) |
void | SendWatchpointChangedEvent (WatchpointEventData *data) |
Watchpoint (const Watchpoint &)=delete | |
const Watchpoint & | operator= (const Watchpoint &)=delete |
Private Attributes | |
Target & | m_target |
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_was_read: 1 |
uint32_t | m_watch_was_written: 1 |
uint32_t | m_ignore_count |
uint32_t | m_false_alarms |
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 |
bool | m_being_created |
std::unique_ptr< UserExpression > | m_condition_up |
Friends | |
class | Target |
class | WatchpointList |
class | StopInfoWatchpoint |
Additional Inherited Members | |
![]() | |
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_hardware_index |
The hardware resource index for this breakpoint/watchpoint. | |
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. | |
Definition at line 24 of file Watchpoint.h.
Watchpoint::Watchpoint | ( | Target & | target, |
lldb::addr_t | addr, | ||
uint32_t | size, | ||
const CompilerType * | type, | ||
bool | hardware = true |
||
) |
Definition at line 27 of file Watchpoint.cpp.
References CaptureWatchedValue(), lldb::eEncodingUint, lldb::eLanguageTypeC, lldb_private::GetLog(), lldb_private::Target::GetProcessSP(), lldb_private::Target::GetScratchTypeSystemForLanguage(), lldb_private::CompilerType::IsValid(), LLDB_LOG_ERROR, m_being_created, m_target, m_type, and lldb_private::Watchpoints.
|
overridedefault |
|
privatedelete |
bool Watchpoint::CaptureWatchedValue | ( | const ExecutionContext & | exe_ctx | ) |
Definition at line 108 of file Watchpoint.cpp.
References lldb_private::ValueObjectMemory::Create(), lldb_private::ExecutionContext::GetBestExecutionContextScope(), lldb_private::StoppointSite::GetLoadAddress(), lldb_private::ConstString::GetStringRef(), lldb_private::CompilerType::IsValid(), m_new_value_sp, m_old_value_sp, and m_type.
Referenced by Watchpoint().
void Watchpoint::ClearCallback | ( | ) |
Definition at line 86 of file Watchpoint.cpp.
References lldb_private::WatchpointOptions::ClearCallback(), m_options, and SendWatchpointChangedEvent().
Referenced by CommandObjectWatchpointCommandDelete::DoExecute().
|
overridevirtual |
Implements lldb_private::StoppointSite.
Definition at line 153 of file Watchpoint.cpp.
References DumpWithLevel(), and lldb::eDescriptionLevelBrief.
void Watchpoint::DumpSnapshots | ( | Stream * | s, |
const char * | prefix = nullptr |
||
) | const |
Definition at line 159 of file Watchpoint.cpp.
References lldb_private::StoppointSite::GetID(), m_new_value_sp, m_old_value_sp, and lldb_private::Stream::Printf().
Referenced by DumpWithLevel().
void Watchpoint::DumpWithLevel | ( | Stream * | s, |
lldb::DescriptionLevel | description_level | ||
) | const |
Definition at line 188 of file Watchpoint.cpp.
References DumpSnapshots(), lldb::eDescriptionLevelBrief, lldb::eDescriptionLevelFull, lldb::eDescriptionLevelVerbose, lldb_private::WatchpointOptions::GetCallbackDescription(), GetConditionText(), lldb_private::StoppointSite::GetHardwareIndex(), lldb_private::StoppointSite::GetHitCount(), lldb_private::StoppointSite::GetID(), GetIgnoreCount(), lldb_private::StoppointSite::GetLoadAddress(), IsEnabled(), lldb_private::StoppointSite::m_byte_size, m_decl_str, m_options, m_watch_read, m_watch_spec_str, m_watch_write, and lldb_private::Stream::Printf().
Referenced by Dump(), and GetDescription().
|
inline |
Definition at line 155 of file Watchpoint.h.
References m_type.
const char * Watchpoint::GetConditionText | ( | ) | const |
Return a pointer to the text of the condition expression.
Definition at line 305 of file Watchpoint.cpp.
References m_condition_up.
Referenced by DumpWithLevel().
void Watchpoint::GetDescription | ( | Stream * | s, |
lldb::DescriptionLevel | level | ||
) |
Definition at line 149 of file Watchpoint.cpp.
References DumpWithLevel().
Referenced by AddWatchpointDescription().
|
inline |
Definition at line 98 of file Watchpoint.h.
References m_error.
uint32_t Watchpoint::GetIgnoreCount | ( | ) | const |
Definition at line 273 of file Watchpoint.cpp.
References m_ignore_count.
Referenced by DumpWithLevel().
|
inline |
Returns the WatchpointOptions structure set for this watchpoint.
Definition at line 104 of file Watchpoint.h.
References m_options.
Referenced by CommandObjectWatchpointCommandList::DoExecute().
|
inline |
Definition at line 97 of file Watchpoint.h.
References m_target.
Referenced by SendWatchpointChangedEvent().
std::string Watchpoint::GetWatchSpec | ( | ) |
Definition at line 93 of file Watchpoint.cpp.
References m_watch_spec_str.
void Watchpoint::IncrementFalseAlarmsAndReviseHitCount | ( | ) |
Definition at line 127 of file Watchpoint.cpp.
References lldb_private::StoppointHitCounter::Decrement(), lldb_private::StoppointHitCounter::GetValue(), m_false_alarms, lldb_private::StoppointSite::m_hit_counter, and lldb_private::StoppointHitCounter::Reset().
bool Watchpoint::InvokeCallback | ( | StoppointCallbackContext * | context | ) |
Invoke the callback action when the watchpoint is hit.
[in] | context | Described the watchpoint event. |
Definition at line 282 of file Watchpoint.cpp.
References lldb_private::StoppointSite::GetID(), lldb_private::WatchpointOptions::InvokeCallback(), and m_options.
bool Watchpoint::IsDisabledDuringEphemeralMode | ( | ) |
Definition at line 237 of file Watchpoint.cpp.
References m_disabled_count, and m_is_ephemeral.
bool Watchpoint::IsEnabled | ( | ) | const |
Definition at line 222 of file Watchpoint.cpp.
References m_enabled.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::DisableWatchpoint(), lldb_private::ProcessWindows::DisableWatchpoint(), DumpWithLevel(), lldb_private::process_gdb_remote::ProcessGDBRemote::EnableWatchpoint(), lldb_private::ProcessWindows::EnableWatchpoint(), and ShouldStop().
|
overridevirtual |
Implements lldb_private::StoppointSite.
Definition at line 99 of file Watchpoint.cpp.
References lldb_private::StoppointSite::HardwareRequired(), lldbassert, and m_is_hardware.
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::DisableWatchpoint().
bool Watchpoint::IsWatchVariable | ( | ) | const |
Definition at line 104 of file Watchpoint.cpp.
References m_is_watch_variable.
|
privatedelete |
|
inlineprivate |
Definition at line 162 of file Watchpoint.h.
References m_new_value_sp, and m_old_value_sp.
|
private |
Definition at line 312 of file Watchpoint.cpp.
References lldb_private::Broadcaster::BroadcastEvent(), lldb_private::Target::eBroadcastBitWatchpointChanged, GetTarget(), and m_being_created.
Referenced by ClearCallback(), SetCallback(), SetCondition(), SetEnabled(), SetIgnoreCount(), and SetWatchpointType().
|
private |
Definition at line 323 of file Watchpoint.cpp.
References lldb_private::Broadcaster::BroadcastEvent(), lldb_private::Target::eBroadcastBitWatchpointChanged, GetTarget(), and m_being_created.
void lldb_private::Watchpoint::SetCallback | ( | WatchpointHitCallback | callback, |
const lldb::BatonSP & | callback_baton_sp, | ||
bool | is_synchronous = false |
||
) |
void Watchpoint::SetCallback | ( | WatchpointHitCallback | callback, |
void * | callback_baton, | ||
bool | is_synchronous = false |
||
) |
Set the callback action invoked when the watchpoint is hit.
[in] | callback | The method that will get called when the watchpoint is hit. |
[in] | callback_baton | A void * pointer that will get passed back to the callback function. |
[in] | is_synchronous | If 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 67 of file Watchpoint.cpp.
References m_options, SendWatchpointChangedEvent(), and lldb_private::WatchpointOptions::SetCallback().
void Watchpoint::SetCondition | ( | const char * | condition | ) |
Set the watchpoint's condition.
[in] | condition | The condition expression to evaluate when the watchpoint is hit. Pass in nullptr to clear the condition. |
Definition at line 286 of file Watchpoint.cpp.
References lldb::eLanguageTypeUnknown, lldb_private::Expression::eResultTypeAny, error(), lldb_private::Target::GetUserExpressionForLanguage(), m_condition_up, m_target, and SendWatchpointChangedEvent().
void Watchpoint::SetDeclInfo | ( | const std::string & | str | ) |
Definition at line 91 of file Watchpoint.cpp.
References m_decl_str.
void Watchpoint::SetEnabled | ( | bool | enabled, |
bool | notify = true |
||
) |
Definition at line 241 of file Watchpoint.cpp.
References LLDB_INVALID_INDEX32, m_disabled_count, m_enabled, m_is_ephemeral, SendWatchpointChangedEvent(), and lldb_private::StoppointSite::SetHardwareIndex().
Referenced by lldb_private::process_gdb_remote::ProcessGDBRemote::DisableWatchpoint(), lldb_private::ProcessWindows::DisableWatchpoint(), lldb_private::process_gdb_remote::ProcessGDBRemote::EnableWatchpoint(), and lldb_private::ProcessWindows::EnableWatchpoint().
|
inlineprivate |
Definition at line 203 of file Watchpoint.h.
References lldb_private::StoppointSite::m_id.
void Watchpoint::SetIgnoreCount | ( | uint32_t | n | ) |
Definition at line 275 of file Watchpoint.cpp.
References m_ignore_count, and SendWatchpointChangedEvent().
void Watchpoint::SetWatchpointType | ( | uint32_t | type, |
bool | notify = true |
||
) |
Definition at line 259 of file Watchpoint.cpp.
References LLDB_WATCH_TYPE_READ, LLDB_WATCH_TYPE_WRITE, m_watch_read, m_watch_write, and SendWatchpointChangedEvent().
void Watchpoint::SetWatchSpec | ( | const std::string & | str | ) |
Definition at line 95 of file Watchpoint.cpp.
References m_watch_spec_str.
void Watchpoint::SetWatchVariable | ( | bool | val | ) |
Definition at line 106 of file Watchpoint.cpp.
References m_is_watch_variable.
|
overridevirtual |
Implements lldb_private::StoppointSite.
Definition at line 143 of file Watchpoint.cpp.
References lldb_private::StoppointHitCounter::Increment(), IsEnabled(), and lldb_private::StoppointSite::m_hit_counter.
void Watchpoint::TurnOffEphemeralMode | ( | ) |
Definition at line 231 of file Watchpoint.cpp.
References m_disabled_count, and m_is_ephemeral.
void Watchpoint::TurnOnEphemeralMode | ( | ) |
Definition at line 229 of file Watchpoint.cpp.
References m_is_ephemeral.
|
inlineprivate |
Definition at line 167 of file Watchpoint.h.
References lldb_private::StoppointHitCounter::Decrement(), and lldb_private::StoppointSite::m_hit_counter.
bool Watchpoint::WatchpointRead | ( | ) | const |
Definition at line 269 of file Watchpoint.cpp.
References m_watch_read.
Referenced by lldb_private::ProcessWindows::EnableWatchpoint(), and GetGDBStoppointType().
bool Watchpoint::WatchpointWrite | ( | ) | const |
Definition at line 271 of file Watchpoint.cpp.
References m_watch_write.
Referenced by lldb_private::ProcessWindows::EnableWatchpoint(), and GetGDBStoppointType().
|
friend |
Definition at line 160 of file Watchpoint.h.
|
friend |
Definition at line 158 of file Watchpoint.h.
|
friend |
Definition at line 159 of file Watchpoint.h.
|
private |
Definition at line 199 of file Watchpoint.h.
Referenced by SendWatchpointChangedEvent(), and Watchpoint().
|
private |
Definition at line 201 of file Watchpoint.h.
Referenced by GetConditionText(), and SetCondition().
|
private |
Definition at line 189 of file Watchpoint.h.
Referenced by DumpWithLevel(), and SetDeclInfo().
|
private |
Definition at line 177 of file Watchpoint.h.
Referenced by IsDisabledDuringEphemeralMode(), SetEnabled(), and TurnOffEphemeralMode().
|
private |
Definition at line 170 of file Watchpoint.h.
Referenced by IsEnabled(), and SetEnabled().
|
private |
Definition at line 194 of file Watchpoint.h.
Referenced by GetError().
|
private |
Definition at line 188 of file Watchpoint.h.
Referenced by IncrementFalseAlarmsAndReviseHitCount().
|
private |
Definition at line 187 of file Watchpoint.h.
Referenced by GetIgnoreCount(), and SetIgnoreCount().
|
private |
Definition at line 173 of file Watchpoint.h.
Referenced by IsDisabledDuringEphemeralMode(), SetEnabled(), TurnOffEphemeralMode(), and TurnOnEphemeralMode().
|
private |
Definition at line 171 of file Watchpoint.h.
Referenced by IsHardware().
|
private |
Definition at line 172 of file Watchpoint.h.
Referenced by IsWatchVariable(), and SetWatchVariable().
|
private |
Definition at line 192 of file Watchpoint.h.
Referenced by CaptureWatchedValue(), DumpSnapshots(), and ResetHistoricValues().
|
private |
Definition at line 191 of file Watchpoint.h.
Referenced by CaptureWatchedValue(), DumpSnapshots(), and ResetHistoricValues().
|
private |
Definition at line 197 of file Watchpoint.h.
Referenced by ClearCallback(), DumpWithLevel(), GetOptions(), InvokeCallback(), and SetCallback().
|
private |
Definition at line 169 of file Watchpoint.h.
Referenced by GetTarget(), SetCondition(), and Watchpoint().
|
private |
Definition at line 193 of file Watchpoint.h.
Referenced by CaptureWatchedValue(), GetCompilerType(), and Watchpoint().
|
private |
Definition at line 182 of file Watchpoint.h.
Referenced by DumpWithLevel(), SetWatchpointType(), and WatchpointRead().
|
private |
Definition at line 190 of file Watchpoint.h.
Referenced by DumpWithLevel(), GetWatchSpec(), and SetWatchSpec().
|
private |
Definition at line 184 of file Watchpoint.h.
|
private |
Definition at line 185 of file Watchpoint.h.
|
private |
Definition at line 183 of file Watchpoint.h.
Referenced by DumpWithLevel(), SetWatchpointType(), and WatchpointWrite().