11fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton//===-- SBWatchpoint.h ----------------------------------*- C++ -*-===// 2096c293f8d4171448908801d5a1a74b152af1430Johnny Chen// 3096c293f8d4171448908801d5a1a74b152af1430Johnny Chen// The LLVM Compiler Infrastructure 4096c293f8d4171448908801d5a1a74b152af1430Johnny Chen// 5096c293f8d4171448908801d5a1a74b152af1430Johnny Chen// This file is distributed under the University of Illinois Open Source 6096c293f8d4171448908801d5a1a74b152af1430Johnny Chen// License. See LICENSE.TXT for details. 7096c293f8d4171448908801d5a1a74b152af1430Johnny Chen// 8096c293f8d4171448908801d5a1a74b152af1430Johnny Chen//===----------------------------------------------------------------------===// 9096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 101fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton#ifndef LLDB_SBWatchpoint_h_ 111fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton#define LLDB_SBWatchpoint_h_ 12096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 13096c293f8d4171448908801d5a1a74b152af1430Johnny Chen#include "lldb/API/SBDefines.h" 14096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 15096c293f8d4171448908801d5a1a74b152af1430Johnny Chennamespace lldb { 16096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 171fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Claytonclass SBWatchpoint 18096c293f8d4171448908801d5a1a74b152af1430Johnny Chen{ 19096c293f8d4171448908801d5a1a74b152af1430Johnny Chenpublic: 20096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 211fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton SBWatchpoint (); 22096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 231fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton SBWatchpoint (const lldb::SBWatchpoint &rhs); 24096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 250a19a1b9c25117854f226256805239d95153ed2dGreg Clayton SBWatchpoint (const lldb::WatchpointSP &wp_sp); 260a19a1b9c25117854f226256805239d95153ed2dGreg Clayton 271fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton ~SBWatchpoint (); 28096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 291fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton const lldb::SBWatchpoint & 301fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton operator = (const lldb::SBWatchpoint &rhs); 31096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 3241a55efdfd779b910fb3515c47357c97e695ec22Johnny Chen bool 3341a55efdfd779b910fb3515c47357c97e695ec22Johnny Chen IsValid() const; 3441a55efdfd779b910fb3515c47357c97e695ec22Johnny Chen 35a442da2c8213b09b6b3869c8e30b5d98023ed7baJim Ingham SBError 36a442da2c8213b09b6b3869c8e30b5d98023ed7baJim Ingham GetError(); 37a442da2c8213b09b6b3869c8e30b5d98023ed7baJim Ingham 38092bd1575675778c6ebe901a7760af7427db617eJohnny Chen watch_id_t 391fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton GetID (); 40092bd1575675778c6ebe901a7760af7427db617eJohnny Chen 41092bd1575675778c6ebe901a7760af7427db617eJohnny Chen /// With -1 representing an invalid hardware index. 42092bd1575675778c6ebe901a7760af7427db617eJohnny Chen int32_t 431fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton GetHardwareIndex (); 44092bd1575675778c6ebe901a7760af7427db617eJohnny Chen 45096c293f8d4171448908801d5a1a74b152af1430Johnny Chen lldb::addr_t 461fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton GetWatchAddress (); 47096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 48096c293f8d4171448908801d5a1a74b152af1430Johnny Chen size_t 491fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton GetWatchSize(); 50096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 51096c293f8d4171448908801d5a1a74b152af1430Johnny Chen void 52096c293f8d4171448908801d5a1a74b152af1430Johnny Chen SetEnabled(bool enabled); 53096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 54096c293f8d4171448908801d5a1a74b152af1430Johnny Chen bool 55096c293f8d4171448908801d5a1a74b152af1430Johnny Chen IsEnabled (); 56096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 57096c293f8d4171448908801d5a1a74b152af1430Johnny Chen uint32_t 581fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton GetHitCount (); 59092bd1575675778c6ebe901a7760af7427db617eJohnny Chen 60092bd1575675778c6ebe901a7760af7427db617eJohnny Chen uint32_t 61096c293f8d4171448908801d5a1a74b152af1430Johnny Chen GetIgnoreCount (); 62096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 63096c293f8d4171448908801d5a1a74b152af1430Johnny Chen void 64096c293f8d4171448908801d5a1a74b152af1430Johnny Chen SetIgnoreCount (uint32_t n); 65096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 66712a628dde2f4f786389feecf7e06e59f0853c75Johnny Chen const char * 67712a628dde2f4f786389feecf7e06e59f0853c75Johnny Chen GetCondition (); 68712a628dde2f4f786389feecf7e06e59f0853c75Johnny Chen 69712a628dde2f4f786389feecf7e06e59f0853c75Johnny Chen void 70712a628dde2f4f786389feecf7e06e59f0853c75Johnny Chen SetCondition (const char *condition); 71712a628dde2f4f786389feecf7e06e59f0853c75Johnny Chen 72096c293f8d4171448908801d5a1a74b152af1430Johnny Chen bool 73096c293f8d4171448908801d5a1a74b152af1430Johnny Chen GetDescription (lldb::SBStream &description, DescriptionLevel level); 74096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 750a19a1b9c25117854f226256805239d95153ed2dGreg Clayton void 760a19a1b9c25117854f226256805239d95153ed2dGreg Clayton Clear (); 770a19a1b9c25117854f226256805239d95153ed2dGreg Clayton 780a19a1b9c25117854f226256805239d95153ed2dGreg Clayton lldb::WatchpointSP 790a19a1b9c25117854f226256805239d95153ed2dGreg Clayton GetSP () const; 800a19a1b9c25117854f226256805239d95153ed2dGreg Clayton 810a19a1b9c25117854f226256805239d95153ed2dGreg Clayton void 820a19a1b9c25117854f226256805239d95153ed2dGreg Clayton SetSP (const lldb::WatchpointSP &sp); 83096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 849c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham static bool 859c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham EventIsWatchpointEvent (const lldb::SBEvent &event); 869c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham 879c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham static lldb::WatchpointEventType 889c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham GetWatchpointEventTypeFromEvent (const lldb::SBEvent& event); 899c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham 909c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham static lldb::SBWatchpoint 919c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham GetWatchpointFromEvent (const lldb::SBEvent& event); 929c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham 93096c293f8d4171448908801d5a1a74b152af1430Johnny Chenprivate: 94096c293f8d4171448908801d5a1a74b152af1430Johnny Chen friend class SBTarget; 95ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen friend class SBValue; 96096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 970a19a1b9c25117854f226256805239d95153ed2dGreg Clayton 98ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen lldb::WatchpointSP m_opaque_sp; 99096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 100096c293f8d4171448908801d5a1a74b152af1430Johnny Chen}; 101096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 102096c293f8d4171448908801d5a1a74b152af1430Johnny Chen} // namespace lldb 103096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 1041fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton#endif // LLDB_SBWatchpoint_h_ 105