From 46d71e86fca35b77fc4e0ae2c1d76825aad7dc6f Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Wed, 8 Oct 2025 13:22:12 -0700 Subject: [PATCH] =?UTF-8?q?Revert=20"Make=20SBBreakpoint/SBBreakpointLocat?= =?UTF-8?q?ion.SetCondition(nullptr)=20work=20aga=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f3e2c20a23b11fbe1149e5d2e3631109af6d3238. --- lldb/source/API/SBBreakpoint.cpp | 11 +-- lldb/source/API/SBBreakpointLocation.cpp | 11 +-- lldb/unittests/API/CMakeLists.txt | 1 - .../API/SBBreakpointClearConditionTest.cpp | 69 ------------------- lldb/unittests/Breakpoint/CMakeLists.txt | 6 +- 5 files changed, 5 insertions(+), 93 deletions(-) delete mode 100644 lldb/unittests/API/SBBreakpointClearConditionTest.cpp 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 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 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 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 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 -#include - -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 subsystems; -}; - -template 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 )