1 //===-- SBBreakpointName.cpp ----------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "lldb/API/SBBreakpointName.h"
10 #include "SBReproducerPrivate.h"
11 #include "lldb/API/SBDebugger.h"
12 #include "lldb/API/SBError.h"
13 #include "lldb/API/SBStream.h"
14 #include "lldb/API/SBStringList.h"
15 #include "lldb/API/SBStructuredData.h"
16 #include "lldb/API/SBTarget.h"
18 #include "lldb/Breakpoint/BreakpointName.h"
19 #include "lldb/Breakpoint/StoppointCallbackContext.h"
20 #include "lldb/Core/Debugger.h"
21 #include "lldb/Core/StructuredDataImpl.h"
22 #include "lldb/Interpreter/CommandInterpreter.h"
23 #include "lldb/Interpreter/ScriptInterpreter.h"
24 #include "lldb/Target/Target.h"
25 #include "lldb/Target/ThreadSpec.h"
26 #include "lldb/Utility/Stream.h"
28 #include "SBBreakpointOptionCommon.h"
31 using namespace lldb_private;
35 class SBBreakpointNameImpl {
37 SBBreakpointNameImpl(TargetSP target_sp, const char *name) {
38 if (!name || name[0] == '\0')
45 m_target_wp = target_sp;
48 SBBreakpointNameImpl(SBTarget &sb_target, const char *name);
49 bool operator==(const SBBreakpointNameImpl &rhs);
50 bool operator!=(const SBBreakpointNameImpl &rhs);
52 // For now we take a simple approach and only keep the name, and relook up
53 // the location when we need it.
55 TargetSP GetTarget() const {
56 return m_target_wp.lock();
59 const char *GetName() const {
60 return m_name.c_str();
63 bool IsValid() const {
64 return !m_name.empty() && m_target_wp.lock();
67 lldb_private::BreakpointName *GetBreakpointName() const;
74 SBBreakpointNameImpl::SBBreakpointNameImpl(SBTarget &sb_target,
76 if (!name || name[0] == '\0')
80 if (!sb_target.IsValid())
83 TargetSP target_sp = sb_target.GetSP();
87 m_target_wp = target_sp;
90 bool SBBreakpointNameImpl::operator==(const SBBreakpointNameImpl &rhs) {
91 return m_name == rhs.m_name && m_target_wp.lock() == rhs.m_target_wp.lock();
94 bool SBBreakpointNameImpl::operator!=(const SBBreakpointNameImpl &rhs) {
95 return m_name != rhs.m_name || m_target_wp.lock() != rhs.m_target_wp.lock();
98 lldb_private::BreakpointName *SBBreakpointNameImpl::GetBreakpointName() const {
101 TargetSP target_sp = GetTarget();
105 return target_sp->FindBreakpointName(ConstString(m_name), true, error);
110 SBBreakpointName::SBBreakpointName() {
111 LLDB_RECORD_CONSTRUCTOR_NO_ARGS(SBBreakpointName);
114 SBBreakpointName::SBBreakpointName(SBTarget &sb_target, const char *name) {
115 LLDB_RECORD_CONSTRUCTOR(SBBreakpointName, (lldb::SBTarget &, const char *),
118 m_impl_up = std::make_unique<SBBreakpointNameImpl>(sb_target, name);
119 // Call FindBreakpointName here to make sure the name is valid, reset if not:
120 BreakpointName *bp_name = GetBreakpointName();
125 SBBreakpointName::SBBreakpointName(SBBreakpoint &sb_bkpt, const char *name) {
126 LLDB_RECORD_CONSTRUCTOR(SBBreakpointName,
127 (lldb::SBBreakpoint &, const char *), sb_bkpt, name);
129 if (!sb_bkpt.IsValid()) {
133 BreakpointSP bkpt_sp = sb_bkpt.GetSP();
134 Target &target = bkpt_sp->GetTarget();
137 std::make_unique<SBBreakpointNameImpl>(target.shared_from_this(), name);
139 // Call FindBreakpointName here to make sure the name is valid, reset if not:
140 BreakpointName *bp_name = GetBreakpointName();
146 // Now copy over the breakpoint's options:
147 target.ConfigureBreakpointName(*bp_name, *bkpt_sp->GetOptions(),
148 BreakpointName::Permissions());
151 SBBreakpointName::SBBreakpointName(const SBBreakpointName &rhs) {
152 LLDB_RECORD_CONSTRUCTOR(SBBreakpointName, (const lldb::SBBreakpointName &),
158 m_impl_up = std::make_unique<SBBreakpointNameImpl>(
159 rhs.m_impl_up->GetTarget(), rhs.m_impl_up->GetName());
162 SBBreakpointName::~SBBreakpointName() = default;
164 const SBBreakpointName &SBBreakpointName::
165 operator=(const SBBreakpointName &rhs) {
167 const lldb::SBBreakpointName &,
168 SBBreakpointName, operator=,(const lldb::SBBreakpointName &), rhs);
170 if (!rhs.m_impl_up) {
172 return LLDB_RECORD_RESULT(*this);
175 m_impl_up = std::make_unique<SBBreakpointNameImpl>(rhs.m_impl_up->GetTarget(),
176 rhs.m_impl_up->GetName());
177 return LLDB_RECORD_RESULT(*this);
180 bool SBBreakpointName::operator==(const lldb::SBBreakpointName &rhs) {
182 bool, SBBreakpointName, operator==,(const lldb::SBBreakpointName &), rhs);
184 return *m_impl_up == *rhs.m_impl_up;
187 bool SBBreakpointName::operator!=(const lldb::SBBreakpointName &rhs) {
189 bool, SBBreakpointName, operator!=,(const lldb::SBBreakpointName &), rhs);
191 return *m_impl_up != *rhs.m_impl_up;
194 bool SBBreakpointName::IsValid() const {
195 LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBBreakpointName, IsValid);
196 return this->operator bool();
198 SBBreakpointName::operator bool() const {
199 LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBBreakpointName, operator bool);
203 return m_impl_up->IsValid();
206 const char *SBBreakpointName::GetName() const {
207 LLDB_RECORD_METHOD_CONST_NO_ARGS(const char *, SBBreakpointName, GetName);
210 return "<Invalid Breakpoint Name Object>";
211 return m_impl_up->GetName();
214 void SBBreakpointName::SetEnabled(bool enable) {
215 LLDB_RECORD_METHOD(void, SBBreakpointName, SetEnabled, (bool), enable);
217 BreakpointName *bp_name = GetBreakpointName();
221 std::lock_guard<std::recursive_mutex> guard(
222 m_impl_up->GetTarget()->GetAPIMutex());
224 bp_name->GetOptions().SetEnabled(enable);
227 void SBBreakpointName::UpdateName(BreakpointName &bp_name) {
231 TargetSP target_sp = m_impl_up->GetTarget();
234 target_sp->ApplyNameToBreakpoints(bp_name);
238 bool SBBreakpointName::IsEnabled() {
239 LLDB_RECORD_METHOD_NO_ARGS(bool, SBBreakpointName, IsEnabled);
241 BreakpointName *bp_name = GetBreakpointName();
245 std::lock_guard<std::recursive_mutex> guard(
246 m_impl_up->GetTarget()->GetAPIMutex());
248 return bp_name->GetOptions().IsEnabled();
251 void SBBreakpointName::SetOneShot(bool one_shot) {
252 LLDB_RECORD_METHOD(void, SBBreakpointName, SetOneShot, (bool), one_shot);
254 BreakpointName *bp_name = GetBreakpointName();
258 std::lock_guard<std::recursive_mutex> guard(
259 m_impl_up->GetTarget()->GetAPIMutex());
261 bp_name->GetOptions().SetOneShot(one_shot);
262 UpdateName(*bp_name);
265 bool SBBreakpointName::IsOneShot() const {
266 LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBBreakpointName, IsOneShot);
268 const BreakpointName *bp_name = GetBreakpointName();
272 std::lock_guard<std::recursive_mutex> guard(
273 m_impl_up->GetTarget()->GetAPIMutex());
275 return bp_name->GetOptions().IsOneShot();
278 void SBBreakpointName::SetIgnoreCount(uint32_t count) {
279 LLDB_RECORD_METHOD(void, SBBreakpointName, SetIgnoreCount, (uint32_t), count);
281 BreakpointName *bp_name = GetBreakpointName();
285 std::lock_guard<std::recursive_mutex> guard(
286 m_impl_up->GetTarget()->GetAPIMutex());
288 bp_name->GetOptions().SetIgnoreCount(count);
289 UpdateName(*bp_name);
292 uint32_t SBBreakpointName::GetIgnoreCount() const {
293 LLDB_RECORD_METHOD_CONST_NO_ARGS(uint32_t, SBBreakpointName, GetIgnoreCount);
295 BreakpointName *bp_name = GetBreakpointName();
299 std::lock_guard<std::recursive_mutex> guard(
300 m_impl_up->GetTarget()->GetAPIMutex());
302 return bp_name->GetOptions().GetIgnoreCount();
305 void SBBreakpointName::SetCondition(const char *condition) {
306 LLDB_RECORD_METHOD(void, SBBreakpointName, SetCondition, (const char *),
309 BreakpointName *bp_name = GetBreakpointName();
313 std::lock_guard<std::recursive_mutex> guard(
314 m_impl_up->GetTarget()->GetAPIMutex());
316 bp_name->GetOptions().SetCondition(condition);
317 UpdateName(*bp_name);
320 const char *SBBreakpointName::GetCondition() {
321 LLDB_RECORD_METHOD_NO_ARGS(const char *, SBBreakpointName, GetCondition);
323 BreakpointName *bp_name = GetBreakpointName();
327 std::lock_guard<std::recursive_mutex> guard(
328 m_impl_up->GetTarget()->GetAPIMutex());
330 return bp_name->GetOptions().GetConditionText();
333 void SBBreakpointName::SetAutoContinue(bool auto_continue) {
334 LLDB_RECORD_METHOD(void, SBBreakpointName, SetAutoContinue, (bool),
337 BreakpointName *bp_name = GetBreakpointName();
341 std::lock_guard<std::recursive_mutex> guard(
342 m_impl_up->GetTarget()->GetAPIMutex());
344 bp_name->GetOptions().SetAutoContinue(auto_continue);
345 UpdateName(*bp_name);
348 bool SBBreakpointName::GetAutoContinue() {
349 LLDB_RECORD_METHOD_NO_ARGS(bool, SBBreakpointName, GetAutoContinue);
351 BreakpointName *bp_name = GetBreakpointName();
355 std::lock_guard<std::recursive_mutex> guard(
356 m_impl_up->GetTarget()->GetAPIMutex());
358 return bp_name->GetOptions().IsAutoContinue();
361 void SBBreakpointName::SetThreadID(tid_t tid) {
362 LLDB_RECORD_METHOD(void, SBBreakpointName, SetThreadID, (lldb::tid_t), tid);
364 BreakpointName *bp_name = GetBreakpointName();
368 std::lock_guard<std::recursive_mutex> guard(
369 m_impl_up->GetTarget()->GetAPIMutex());
371 bp_name->GetOptions().SetThreadID(tid);
372 UpdateName(*bp_name);
375 tid_t SBBreakpointName::GetThreadID() {
376 LLDB_RECORD_METHOD_NO_ARGS(lldb::tid_t, SBBreakpointName, GetThreadID);
378 BreakpointName *bp_name = GetBreakpointName();
380 return LLDB_INVALID_THREAD_ID;
382 std::lock_guard<std::recursive_mutex> guard(
383 m_impl_up->GetTarget()->GetAPIMutex());
385 return bp_name->GetOptions().GetThreadSpec()->GetTID();
388 void SBBreakpointName::SetThreadIndex(uint32_t index) {
389 LLDB_RECORD_METHOD(void, SBBreakpointName, SetThreadIndex, (uint32_t), index);
391 BreakpointName *bp_name = GetBreakpointName();
395 std::lock_guard<std::recursive_mutex> guard(
396 m_impl_up->GetTarget()->GetAPIMutex());
398 bp_name->GetOptions().GetThreadSpec()->SetIndex(index);
399 UpdateName(*bp_name);
402 uint32_t SBBreakpointName::GetThreadIndex() const {
403 LLDB_RECORD_METHOD_CONST_NO_ARGS(uint32_t, SBBreakpointName, GetThreadIndex);
405 BreakpointName *bp_name = GetBreakpointName();
407 return LLDB_INVALID_THREAD_ID;
409 std::lock_guard<std::recursive_mutex> guard(
410 m_impl_up->GetTarget()->GetAPIMutex());
412 return bp_name->GetOptions().GetThreadSpec()->GetIndex();
415 void SBBreakpointName::SetThreadName(const char *thread_name) {
416 LLDB_RECORD_METHOD(void, SBBreakpointName, SetThreadName, (const char *),
419 BreakpointName *bp_name = GetBreakpointName();
423 std::lock_guard<std::recursive_mutex> guard(
424 m_impl_up->GetTarget()->GetAPIMutex());
426 bp_name->GetOptions().GetThreadSpec()->SetName(thread_name);
427 UpdateName(*bp_name);
430 const char *SBBreakpointName::GetThreadName() const {
431 LLDB_RECORD_METHOD_CONST_NO_ARGS(const char *, SBBreakpointName,
434 BreakpointName *bp_name = GetBreakpointName();
438 std::lock_guard<std::recursive_mutex> guard(
439 m_impl_up->GetTarget()->GetAPIMutex());
441 return bp_name->GetOptions().GetThreadSpec()->GetName();
444 void SBBreakpointName::SetQueueName(const char *queue_name) {
445 LLDB_RECORD_METHOD(void, SBBreakpointName, SetQueueName, (const char *),
448 BreakpointName *bp_name = GetBreakpointName();
452 std::lock_guard<std::recursive_mutex> guard(
453 m_impl_up->GetTarget()->GetAPIMutex());
455 bp_name->GetOptions().GetThreadSpec()->SetQueueName(queue_name);
456 UpdateName(*bp_name);
459 const char *SBBreakpointName::GetQueueName() const {
460 LLDB_RECORD_METHOD_CONST_NO_ARGS(const char *, SBBreakpointName,
463 BreakpointName *bp_name = GetBreakpointName();
467 std::lock_guard<std::recursive_mutex> guard(
468 m_impl_up->GetTarget()->GetAPIMutex());
470 return bp_name->GetOptions().GetThreadSpec()->GetQueueName();
473 void SBBreakpointName::SetCommandLineCommands(SBStringList &commands) {
474 LLDB_RECORD_METHOD(void, SBBreakpointName, SetCommandLineCommands,
475 (lldb::SBStringList &), commands);
477 BreakpointName *bp_name = GetBreakpointName();
480 if (commands.GetSize() == 0)
484 std::lock_guard<std::recursive_mutex> guard(
485 m_impl_up->GetTarget()->GetAPIMutex());
486 std::unique_ptr<BreakpointOptions::CommandData> cmd_data_up(
487 new BreakpointOptions::CommandData(*commands, eScriptLanguageNone));
489 bp_name->GetOptions().SetCommandDataCallback(cmd_data_up);
490 UpdateName(*bp_name);
493 bool SBBreakpointName::GetCommandLineCommands(SBStringList &commands) {
494 LLDB_RECORD_METHOD(bool, SBBreakpointName, GetCommandLineCommands,
495 (lldb::SBStringList &), commands);
497 BreakpointName *bp_name = GetBreakpointName();
501 StringList command_list;
503 bp_name->GetOptions().GetCommandLineCallbacks(command_list);
505 commands.AppendList(command_list);
509 const char *SBBreakpointName::GetHelpString() const {
510 LLDB_RECORD_METHOD_CONST_NO_ARGS(const char *, SBBreakpointName,
513 BreakpointName *bp_name = GetBreakpointName();
517 return bp_name->GetHelp();
520 void SBBreakpointName::SetHelpString(const char *help_string) {
521 LLDB_RECORD_METHOD(void, SBBreakpointName, SetHelpString, (const char *),
524 BreakpointName *bp_name = GetBreakpointName();
529 std::lock_guard<std::recursive_mutex> guard(
530 m_impl_up->GetTarget()->GetAPIMutex());
531 bp_name->SetHelp(help_string);
534 bool SBBreakpointName::GetDescription(SBStream &s) {
535 LLDB_RECORD_METHOD(bool, SBBreakpointName, GetDescription, (lldb::SBStream &),
538 BreakpointName *bp_name = GetBreakpointName();
541 s.Printf("No value");
545 std::lock_guard<std::recursive_mutex> guard(
546 m_impl_up->GetTarget()->GetAPIMutex());
547 bp_name->GetDescription(s.get(), eDescriptionLevelFull);
551 void SBBreakpointName::SetCallback(SBBreakpointHitCallback callback,
553 LLDB_RECORD_DUMMY(void, SBBreakpointName, SetCallback,
554 (lldb::SBBreakpointHitCallback, void *), callback, baton);
556 BreakpointName *bp_name = GetBreakpointName();
559 std::lock_guard<std::recursive_mutex> guard(
560 m_impl_up->GetTarget()->GetAPIMutex());
562 BatonSP baton_sp(new SBBreakpointCallbackBaton(callback, baton));
563 bp_name->GetOptions().SetCallback(SBBreakpointCallbackBaton
564 ::PrivateBreakpointHitCallback,
567 UpdateName(*bp_name);
570 void SBBreakpointName::SetScriptCallbackFunction(
571 const char *callback_function_name) {
572 LLDB_RECORD_METHOD(void, SBBreakpointName, SetScriptCallbackFunction,
573 (const char *), callback_function_name);
574 SBStructuredData empty_args;
575 SetScriptCallbackFunction(callback_function_name, empty_args);
578 SBError SBBreakpointName::SetScriptCallbackFunction(
579 const char *callback_function_name,
580 SBStructuredData &extra_args) {
581 LLDB_RECORD_METHOD(SBError, SBBreakpointName, SetScriptCallbackFunction,
582 (const char *, SBStructuredData &),
583 callback_function_name, extra_args);
585 BreakpointName *bp_name = GetBreakpointName();
587 sb_error.SetErrorString("unrecognized breakpoint name");
588 return LLDB_RECORD_RESULT(sb_error);
591 std::lock_guard<std::recursive_mutex> guard(
592 m_impl_up->GetTarget()->GetAPIMutex());
594 BreakpointOptions &bp_options = bp_name->GetOptions();
596 error = m_impl_up->GetTarget()
598 .GetScriptInterpreter()
599 ->SetBreakpointCommandCallbackFunction(&bp_options,
600 callback_function_name,
603 sb_error.SetError(error);
604 UpdateName(*bp_name);
605 return LLDB_RECORD_RESULT(sb_error);
609 SBBreakpointName::SetScriptCallbackBody(const char *callback_body_text) {
610 LLDB_RECORD_METHOD(lldb::SBError, SBBreakpointName, SetScriptCallbackBody,
611 (const char *), callback_body_text);
614 BreakpointName *bp_name = GetBreakpointName();
616 return LLDB_RECORD_RESULT(sb_error);
618 std::lock_guard<std::recursive_mutex> guard(
619 m_impl_up->GetTarget()->GetAPIMutex());
621 BreakpointOptions &bp_options = bp_name->GetOptions();
623 m_impl_up->GetTarget()
625 .GetScriptInterpreter()
626 ->SetBreakpointCommandCallback(&bp_options, callback_body_text);
627 sb_error.SetError(error);
628 if (!sb_error.Fail())
629 UpdateName(*bp_name);
631 return LLDB_RECORD_RESULT(sb_error);
634 bool SBBreakpointName::GetAllowList() const {
635 LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBBreakpointName, GetAllowList);
637 BreakpointName *bp_name = GetBreakpointName();
640 return bp_name->GetPermissions().GetAllowList();
643 void SBBreakpointName::SetAllowList(bool value) {
644 LLDB_RECORD_METHOD(void, SBBreakpointName, SetAllowList, (bool), value);
647 BreakpointName *bp_name = GetBreakpointName();
650 bp_name->GetPermissions().SetAllowList(value);
653 bool SBBreakpointName::GetAllowDelete() {
654 LLDB_RECORD_METHOD_NO_ARGS(bool, SBBreakpointName, GetAllowDelete);
656 BreakpointName *bp_name = GetBreakpointName();
659 return bp_name->GetPermissions().GetAllowDelete();
662 void SBBreakpointName::SetAllowDelete(bool value) {
663 LLDB_RECORD_METHOD(void, SBBreakpointName, SetAllowDelete, (bool), value);
666 BreakpointName *bp_name = GetBreakpointName();
669 bp_name->GetPermissions().SetAllowDelete(value);
672 bool SBBreakpointName::GetAllowDisable() {
673 LLDB_RECORD_METHOD_NO_ARGS(bool, SBBreakpointName, GetAllowDisable);
675 BreakpointName *bp_name = GetBreakpointName();
678 return bp_name->GetPermissions().GetAllowDisable();
681 void SBBreakpointName::SetAllowDisable(bool value) {
682 LLDB_RECORD_METHOD(void, SBBreakpointName, SetAllowDisable, (bool), value);
684 BreakpointName *bp_name = GetBreakpointName();
687 bp_name->GetPermissions().SetAllowDisable(value);
690 lldb_private::BreakpointName *SBBreakpointName::GetBreakpointName() const
694 return m_impl_up->GetBreakpointName();
698 namespace lldb_private {
702 void RegisterMethods<SBBreakpointName>(Registry &R) {
703 LLDB_REGISTER_CONSTRUCTOR(SBBreakpointName, ());
704 LLDB_REGISTER_CONSTRUCTOR(SBBreakpointName,
705 (lldb::SBTarget &, const char *));
706 LLDB_REGISTER_CONSTRUCTOR(SBBreakpointName,
707 (lldb::SBBreakpoint &, const char *));
708 LLDB_REGISTER_CONSTRUCTOR(SBBreakpointName,
709 (const lldb::SBBreakpointName &));
710 LLDB_REGISTER_METHOD(
711 const lldb::SBBreakpointName &,
712 SBBreakpointName, operator=,(const lldb::SBBreakpointName &));
713 LLDB_REGISTER_METHOD(
714 bool, SBBreakpointName, operator==,(const lldb::SBBreakpointName &));
715 LLDB_REGISTER_METHOD(
716 bool, SBBreakpointName, operator!=,(const lldb::SBBreakpointName &));
717 LLDB_REGISTER_METHOD_CONST(bool, SBBreakpointName, IsValid, ());
718 LLDB_REGISTER_METHOD_CONST(bool, SBBreakpointName, operator bool, ());
719 LLDB_REGISTER_METHOD_CONST(const char *, SBBreakpointName, GetName, ());
720 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetEnabled, (bool));
721 LLDB_REGISTER_METHOD(bool, SBBreakpointName, IsEnabled, ());
722 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetOneShot, (bool));
723 LLDB_REGISTER_METHOD_CONST(bool, SBBreakpointName, IsOneShot, ());
724 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetIgnoreCount, (uint32_t));
725 LLDB_REGISTER_METHOD_CONST(uint32_t, SBBreakpointName, GetIgnoreCount, ());
726 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetCondition, (const char *));
727 LLDB_REGISTER_METHOD(const char *, SBBreakpointName, GetCondition, ());
728 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetAutoContinue, (bool));
729 LLDB_REGISTER_METHOD(bool, SBBreakpointName, GetAutoContinue, ());
730 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetThreadID, (lldb::tid_t));
731 LLDB_REGISTER_METHOD(lldb::tid_t, SBBreakpointName, GetThreadID, ());
732 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetThreadIndex, (uint32_t));
733 LLDB_REGISTER_METHOD_CONST(uint32_t, SBBreakpointName, GetThreadIndex, ());
734 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetThreadName, (const char *));
735 LLDB_REGISTER_METHOD_CONST(const char *, SBBreakpointName, GetThreadName,
737 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetQueueName, (const char *));
738 LLDB_REGISTER_METHOD_CONST(const char *, SBBreakpointName, GetQueueName,
740 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetCommandLineCommands,
741 (lldb::SBStringList &));
742 LLDB_REGISTER_METHOD(bool, SBBreakpointName, GetCommandLineCommands,
743 (lldb::SBStringList &));
744 LLDB_REGISTER_METHOD_CONST(const char *, SBBreakpointName, GetHelpString,
746 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetHelpString, (const char *));
747 LLDB_REGISTER_METHOD(bool, SBBreakpointName, GetDescription,
749 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetScriptCallbackFunction,
751 LLDB_REGISTER_METHOD(SBError, SBBreakpointName, SetScriptCallbackFunction,
752 (const char *, SBStructuredData &));
753 LLDB_REGISTER_METHOD(lldb::SBError, SBBreakpointName, SetScriptCallbackBody,
755 LLDB_REGISTER_METHOD_CONST(bool, SBBreakpointName, GetAllowList, ());
756 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetAllowList, (bool));
757 LLDB_REGISTER_METHOD(bool, SBBreakpointName, GetAllowDelete, ());
758 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetAllowDelete, (bool));
759 LLDB_REGISTER_METHOD(bool, SBBreakpointName, GetAllowDisable, ());
760 LLDB_REGISTER_METHOD(void, SBBreakpointName, SetAllowDisable, (bool));