[Lldb-commits] [lldb] Revert "Make SBBreakpoint/SBBreakpointLocation.SetCondition(nullptr) work again." (PR #162544)

via lldb-commits lldb-commits at lists.llvm.org
Wed Oct 8 13:24:29 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Kazu Hirata (kazutakahirata)

<details>
<summary>Changes</summary>

Reverts llvm/llvm-project#<!-- -->162370

The PR breaks multiple buildbots:

https://lab.llvm.org/buildbot/#/builders/162/builds/32818
https://lab.llvm.org/buildbot/#/builders/181/builds/29448


---
Full diff: https://github.com/llvm/llvm-project/pull/162544.diff


5 Files Affected:

- (modified) lldb/source/API/SBBreakpoint.cpp (+2-9) 
- (modified) lldb/source/API/SBBreakpointLocation.cpp (+2-9) 
- (modified) lldb/unittests/API/CMakeLists.txt (-1) 
- (removed) lldb/unittests/API/SBBreakpointClearConditionTest.cpp (-69) 
- (modified) lldb/unittests/Breakpoint/CMakeLists.txt (+1-5) 


``````````diff
diff --git a/lldb/source/API/SBBreakpoint.cpp b/lldb/source/API/SBBreakpoint.cpp
index 23dba462478c9..07c0a2ea907ba 100644
--- a/lldb/source/API/SBBreakpoint.cpp
+++ b/lldb/source/API/SBBreakpoint.cpp
@@ -275,11 +275,7 @@ void SBBreakpoint::SetCondition(const char *condition) {
   if (bkpt_sp) {
     std::lock_guard<std::recursive_mutex> guard(
         bkpt_sp->GetTarget().GetAPIMutex());
-    // Treat a null pointer as resetting the condition.
-    if (!condition)
-      bkpt_sp->SetCondition(StopCondition());
-    else
-      bkpt_sp->SetCondition(StopCondition(condition));
+    bkpt_sp->SetCondition(StopCondition(condition));
   }
 }
 
@@ -292,10 +288,7 @@ const char *SBBreakpoint::GetCondition() {
 
   std::lock_guard<std::recursive_mutex> guard(
       bkpt_sp->GetTarget().GetAPIMutex());
-  StopCondition cond = bkpt_sp->GetCondition();
-  if (!cond)
-    return nullptr;
-  return ConstString(cond.GetText()).GetCString();
+  return ConstString(bkpt_sp->GetCondition().GetText()).GetCString();
 }
 
 void SBBreakpoint::SetAutoContinue(bool auto_continue) {
diff --git a/lldb/source/API/SBBreakpointLocation.cpp b/lldb/source/API/SBBreakpointLocation.cpp
index 2feaa5c805a15..e786435c4f8af 100644
--- a/lldb/source/API/SBBreakpointLocation.cpp
+++ b/lldb/source/API/SBBreakpointLocation.cpp
@@ -160,11 +160,7 @@ void SBBreakpointLocation::SetCondition(const char *condition) {
   if (loc_sp) {
     std::lock_guard<std::recursive_mutex> guard(
         loc_sp->GetTarget().GetAPIMutex());
-    // Treat a nullptr as clearing the condition
-    if (!condition)
-      loc_sp->SetCondition(StopCondition());
-    else
-      loc_sp->SetCondition(StopCondition(condition));
+    loc_sp->SetCondition(StopCondition(condition));
   }
 }
 
@@ -177,10 +173,7 @@ const char *SBBreakpointLocation::GetCondition() {
 
   std::lock_guard<std::recursive_mutex> guard(
       loc_sp->GetTarget().GetAPIMutex());
-  StopCondition cond = loc_sp->GetCondition();
-  if (!cond)
-    return nullptr;
-  return ConstString(cond.GetText()).GetCString();
+  return ConstString(loc_sp->GetCondition().GetText()).GetCString();
 }
 
 void SBBreakpointLocation::SetAutoContinue(bool auto_continue) {
diff --git a/lldb/unittests/API/CMakeLists.txt b/lldb/unittests/API/CMakeLists.txt
index b86054fb353f7..1e778181435b4 100644
--- a/lldb/unittests/API/CMakeLists.txt
+++ b/lldb/unittests/API/CMakeLists.txt
@@ -2,7 +2,6 @@ add_lldb_unittest(APITests
   SBCommandInterpreterTest.cpp
   SBLineEntryTest.cpp
   SBMutexTest.cpp
-  SBBreakpointClearConditionTest.cpp
 
   SBAPITEST
 
diff --git a/lldb/unittests/API/SBBreakpointClearConditionTest.cpp b/lldb/unittests/API/SBBreakpointClearConditionTest.cpp
deleted file mode 100644
index 993f7f90d97c0..0000000000000
--- a/lldb/unittests/API/SBBreakpointClearConditionTest.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-// Use the umbrella header for -Wdocumentation.
-#include "lldb/API/LLDB.h"
-
-#include "TestingSupport/SubsystemRAII.h"
-#include "lldb/API/SBBreakpoint.h"
-#include "lldb/API/SBBreakpointLocation.h"
-#include "lldb/API/SBDebugger.h"
-#include "lldb/API/SBTarget.h"
-#include "gtest/gtest.h"
-#include <memory>
-#include <mutex>
-
-using namespace lldb_private;
-using namespace lldb;
-
-class BreakpointClearConditionTest : public ::testing::Test {
-public:
-  void SetUp() override {
-    m_sb_debugger = SBDebugger::Create(/*source_init_files=*/false);
-  };
-
-  void TearDown() override { SBDebugger::Destroy(m_sb_debugger); }
-  SBDebugger m_sb_debugger;
-  SubsystemRAII<lldb::SBDebugger> subsystems;
-};
-
-template <typename T> void test_condition(T sb_object) {
-  const char *in_cond_str = "Here is a condition";
-  sb_object.SetCondition(in_cond_str);
-  // Make sure we set the condition correctly:
-  const char *out_cond_str = sb_object.GetCondition();
-  EXPECT_STREQ(in_cond_str, out_cond_str);
-  // Now unset it by passing in nullptr and make sure that works:
-  const char *empty_tokens[2] = {nullptr, ""};
-  for (auto token : empty_tokens) {
-    sb_object.SetCondition(token);
-    out_cond_str = sb_object.GetCondition();
-    // And make sure an unset condition returns nullptr:
-    EXPECT_EQ(nullptr, out_cond_str);
-  }
-}
-
-TEST_F(BreakpointClearConditionTest, BreakpointClearConditionTest) {
-  // Create target
-  SBTarget sb_target;
-  SBError error;
-  sb_target =
-      m_sb_debugger.CreateTarget("", "x86_64-apple-macosx-", "remote-macosx",
-                                 /*add_dependent=*/false, error);
-
-  EXPECT_EQ(sb_target.IsValid(), true);
-
-  // Create breakpoint
-  SBBreakpoint sb_breakpoint = sb_target.BreakpointCreateByAddress(0xDEADBEEF);
-  test_condition(sb_breakpoint);
-
-  // Address breakpoints always have one location, so we can also use this
-  // to test the location:
-  SBBreakpointLocation sb_loc = sb_breakpoint.GetLocationAtIndex(0);
-  EXPECT_EQ(sb_loc.IsValid(), true);
-  test_condition(sb_loc);
-}
diff --git a/lldb/unittests/Breakpoint/CMakeLists.txt b/lldb/unittests/Breakpoint/CMakeLists.txt
index 3e4161313cd9d..3c234a4fea29a 100644
--- a/lldb/unittests/Breakpoint/CMakeLists.txt
+++ b/lldb/unittests/Breakpoint/CMakeLists.txt
@@ -1,14 +1,10 @@
-add_lldb_unittest(LLDBBreakpointTests      
+add_lldb_unittest(LLDBBreakpointTests
   BreakpointIDTest.cpp
   WatchpointAlgorithmsTests.cpp
 
   LINK_COMPONENTS
     Support
   LINK_LIBS
-    liblldb
     lldbBreakpoint
     lldbCore
-    LLVMTestingSupport
-    lldbUtilityHelpers
-    lldbPluginPlatformMacOSX
   )

``````````

</details>


https://github.com/llvm/llvm-project/pull/162544


More information about the lldb-commits mailing list