| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- //===-- SBBreakpoint.h ------------------------------------------*- C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLDB_API_SBBREAKPOINT_H
- #define LLDB_API_SBBREAKPOINT_H
- #include "lldb/API/SBDefines.h"
- class SBBreakpointListImpl;
- namespace lldb {
- class LLDB_API SBBreakpoint {
- public:
- SBBreakpoint();
- SBBreakpoint(const lldb::SBBreakpoint &rhs);
- SBBreakpoint(const lldb::BreakpointSP &bp_sp);
- ~SBBreakpoint();
- const lldb::SBBreakpoint &operator=(const lldb::SBBreakpoint &rhs);
- // Tests to see if the opaque breakpoint object in this object matches the
- // opaque breakpoint object in "rhs".
- bool operator==(const lldb::SBBreakpoint &rhs);
- bool operator!=(const lldb::SBBreakpoint &rhs);
- break_id_t GetID() const;
- explicit operator bool() const;
- bool IsValid() const;
- void ClearAllBreakpointSites();
- lldb::SBTarget GetTarget() const;
- lldb::SBBreakpointLocation FindLocationByAddress(lldb::addr_t vm_addr);
- lldb::break_id_t FindLocationIDByAddress(lldb::addr_t vm_addr);
- lldb::SBBreakpointLocation FindLocationByID(lldb::break_id_t bp_loc_id);
- lldb::SBBreakpointLocation GetLocationAtIndex(uint32_t index);
- void SetEnabled(bool enable);
- bool IsEnabled();
- void SetOneShot(bool one_shot);
- bool IsOneShot() const;
- bool IsInternal();
- uint32_t GetHitCount() const;
- void SetIgnoreCount(uint32_t count);
- uint32_t GetIgnoreCount() const;
- void SetCondition(const char *condition);
- const char *GetCondition();
- void SetAutoContinue(bool auto_continue);
- bool GetAutoContinue();
- void SetThreadID(lldb::tid_t sb_thread_id);
- 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;
- void SetCallback(SBBreakpointHitCallback callback, void *baton);
- void SetScriptCallbackFunction(const char *callback_function_name);
- SBError SetScriptCallbackFunction(const char *callback_function_name,
- SBStructuredData &extra_args);
- void SetCommandLineCommands(SBStringList &commands);
- bool GetCommandLineCommands(SBStringList &commands);
- SBError SetScriptCallbackBody(const char *script_body_text);
- bool AddName(const char *new_name);
- SBError AddNameWithErrorHandling(const char *new_name);
- void RemoveName(const char *name_to_remove);
- bool MatchesName(const char *name);
- void GetNames(SBStringList &names);
- size_t GetNumResolvedLocations() const;
- size_t GetNumLocations() const;
- bool GetDescription(lldb::SBStream &description);
- bool GetDescription(lldb::SBStream &description, bool include_locations);
- static bool EventIsBreakpointEvent(const lldb::SBEvent &event);
- static lldb::BreakpointEventType
- GetBreakpointEventTypeFromEvent(const lldb::SBEvent &event);
- static lldb::SBBreakpoint GetBreakpointFromEvent(const lldb::SBEvent &event);
- static lldb::SBBreakpointLocation
- GetBreakpointLocationAtIndexFromEvent(const lldb::SBEvent &event,
- uint32_t loc_idx);
- static uint32_t
- GetNumBreakpointLocationsFromEvent(const lldb::SBEvent &event_sp);
- bool IsHardware() const;
- // Can only be called from a ScriptedBreakpointResolver...
- SBError
- AddLocation(SBAddress &address);
- SBStructuredData SerializeToStructuredData();
- private:
- friend class SBBreakpointList;
- friend class SBBreakpointLocation;
- friend class SBBreakpointName;
- friend class SBTarget;
- lldb::BreakpointSP GetSP() const;
- lldb::BreakpointWP m_opaque_wp;
- };
- class LLDB_API SBBreakpointList {
- public:
- SBBreakpointList(SBTarget &target);
- ~SBBreakpointList();
- size_t GetSize() const;
- SBBreakpoint GetBreakpointAtIndex(size_t idx);
- SBBreakpoint FindBreakpointByID(lldb::break_id_t);
- void Append(const SBBreakpoint &sb_bkpt);
- bool AppendIfUnique(const SBBreakpoint &sb_bkpt);
- void AppendByID(lldb::break_id_t id);
- void Clear();
- protected:
- friend class SBTarget;
- void CopyToBreakpointIDList(lldb_private::BreakpointIDList &bp_id_list);
- private:
- std::shared_ptr<SBBreakpointListImpl> m_opaque_sp;
- };
- } // namespace lldb
- #endif // LLDB_API_SBBREAKPOINT_H
|