Skip to content

Conversation

kazutakahirata
Copy link
Contributor

@kazutakahirata kazutakahirata commented Oct 8, 2025

@kazutakahirata kazutakahirata requested review from jimingham and removed request for JDevlieghere October 8, 2025 20:23
@llvmbot llvmbot added the lldb label Oct 8, 2025
@llvmbot
Copy link
Member

llvmbot commented Oct 8, 2025

@llvm/pr-subscribers-lldb

Author: Kazu Hirata (kazutakahirata)

Changes

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 --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
   )

@kazutakahirata
Copy link
Contributor Author

The build seems to be fixed as of 1395d43.

@kazutakahirata kazutakahirata deleted the revert-162370-sb_break_set_cond branch October 8, 2025 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants