[Lldb-commits] [lldb] 26a4ffb - [lldb] Update calls to VerifyBreakpointIDs to handle dummy targets (#197088)

via lldb-commits lldb-commits at lists.llvm.org
Thu May 14 12:50:53 PDT 2026


Author: Dave Lee
Date: 2026-05-14T12:50:48-07:00
New Revision: 26a4ffb3af13e0bd34693f32755b460f495d7c50

URL: https://github.com/llvm/llvm-project/commit/26a4ffb3af13e0bd34693f32755b460f495d7c50
DIFF: https://github.com/llvm/llvm-project/commit/26a4ffb3af13e0bd34693f32755b460f495d7c50.diff

LOG: [lldb] Update calls to VerifyBreakpointIDs to handle dummy targets (#197088)

Follow up to #194272. In that change, `VerifyBreakpointIDs` had its
signature changed to take an `ExecutionContext` instead of a `Target`.
In updating the call-sites, `m_exe_ctx` was used. However, in some of
those places, the `target` argument reflected the use of a dummy target.
The switch broke situations where a proper target does not exist.

This update changes those calls back to using the `target` variable,
which may be the dummy target.

The `const` change to `ExecutionContext &` parameters is to support the
passing of `&target`.

Added: 
    

Modified: 
    lldb/include/lldb/Breakpoint/BreakpointIDList.h
    lldb/source/Breakpoint/BreakpointIDList.cpp
    lldb/source/Commands/CommandObjectBreakpoint.cpp
    lldb/source/Commands/CommandObjectBreakpoint.h
    lldb/source/Commands/CommandObjectBreakpointCommand.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/include/lldb/Breakpoint/BreakpointIDList.h b/lldb/include/lldb/Breakpoint/BreakpointIDList.h
index 3354a3a24893a..da38a85e2dd80 100644
--- a/lldb/include/lldb/Breakpoint/BreakpointIDList.h
+++ b/lldb/include/lldb/Breakpoint/BreakpointIDList.h
@@ -51,7 +51,7 @@ class BreakpointIDList {
   SplitIDRangeExpression(llvm::StringRef in_string);
 
   static llvm::Error FindAndReplaceIDRanges(
-      Args &old_args, ExecutionContext &exe_ctx, bool allow_locations,
+      Args &old_args, const ExecutionContext &exe_ctx, bool allow_locations,
       BreakpointName::Permissions ::PermissionKinds purpose, Args &new_args);
 
 private:

diff  --git a/lldb/source/Breakpoint/BreakpointIDList.cpp b/lldb/source/Breakpoint/BreakpointIDList.cpp
index 82850d9e10b3e..587a48cc25af6 100644
--- a/lldb/source/Breakpoint/BreakpointIDList.cpp
+++ b/lldb/source/Breakpoint/BreakpointIDList.cpp
@@ -83,7 +83,7 @@ static std::string LocationIDForStop(StopInfoSP stop_info_sp, uint32_t idx) {
 //  by the members of the range.
 
 llvm::Error BreakpointIDList::FindAndReplaceIDRanges(
-    Args &old_args, ExecutionContext &exe_ctx, bool allow_locations,
+    Args &old_args, const ExecutionContext &exe_ctx, bool allow_locations,
     BreakpointName::Permissions ::PermissionKinds purpose, Args &new_args) {
   Target *target = exe_ctx.GetTargetPtr();
   llvm::StringRef range_from;

diff  --git a/lldb/source/Commands/CommandObjectBreakpoint.cpp b/lldb/source/Commands/CommandObjectBreakpoint.cpp
index 98e45495c48ad..0ac0663d428fa 100644
--- a/lldb/source/Commands/CommandObjectBreakpoint.cpp
+++ b/lldb/source/Commands/CommandObjectBreakpoint.cpp
@@ -2073,7 +2073,7 @@ class CommandObjectBreakpointModify : public CommandObjectParsed {
     BreakpointIDList valid_bp_ids;
 
     CommandObjectMultiwordBreakpoint::VerifyBreakpointOrLocationIDs(
-        command, m_exe_ctx, result, &valid_bp_ids,
+        command, &target, result, &valid_bp_ids,
         BreakpointName::Permissions::PermissionKinds::disablePerm);
 
     if (result.Succeeded()) {
@@ -2406,7 +2406,7 @@ class CommandObjectBreakpointList : public CommandObjectParsed {
       // Particular breakpoints selected; show info about that breakpoint.
       BreakpointIDList valid_bp_ids;
       CommandObjectMultiwordBreakpoint::VerifyBreakpointOrLocationIDs(
-          command, m_exe_ctx, result, &valid_bp_ids,
+          command, &target, result, &valid_bp_ids,
           BreakpointName::Permissions::PermissionKinds::listPerm);
 
       if (result.Succeeded()) {
@@ -2685,7 +2685,7 @@ class CommandObjectBreakpointDelete : public CommandObjectParsed {
 
       if (!command.empty()) {
         CommandObjectMultiwordBreakpoint::VerifyBreakpointOrLocationIDs(
-            command, m_exe_ctx, result, &excluded_bp_ids,
+            command, &target, result, &excluded_bp_ids,
             BreakpointName::Permissions::PermissionKinds::deletePerm);
         if (!result.Succeeded())
           return;
@@ -3016,7 +3016,7 @@ class CommandObjectBreakpointNameAdd : public CommandObjectParsed {
     // Particular breakpoint selected; disable that breakpoint.
     BreakpointIDList valid_bp_ids;
     CommandObjectMultiwordBreakpoint::VerifyBreakpointIDs(
-        command, m_exe_ctx, result, &valid_bp_ids,
+        command, &target, result, &valid_bp_ids,
         BreakpointName::Permissions::PermissionKinds::listPerm);
 
     if (result.Succeeded()) {
@@ -3090,7 +3090,7 @@ class CommandObjectBreakpointNameDelete : public CommandObjectParsed {
     // Particular breakpoint selected; disable that breakpoint.
     BreakpointIDList valid_bp_ids;
     CommandObjectMultiwordBreakpoint::VerifyBreakpointIDs(
-        command, m_exe_ctx, result, &valid_bp_ids,
+        command, &target, result, &valid_bp_ids,
         BreakpointName::Permissions::PermissionKinds::deletePerm);
 
     if (result.Succeeded()) {
@@ -3892,7 +3892,7 @@ CommandObjectMultiwordBreakpoint::CommandObjectMultiwordBreakpoint(
 CommandObjectMultiwordBreakpoint::~CommandObjectMultiwordBreakpoint() = default;
 
 void CommandObjectMultiwordBreakpoint::VerifyIDs(
-    Args &args, ExecutionContext &exe_ctx, bool allow_locations,
+    Args &args, const ExecutionContext &exe_ctx, bool allow_locations,
     CommandReturnObject &result, BreakpointIDList *valid_ids,
     BreakpointName::Permissions ::PermissionKinds purpose) {
   // args can be strings representing 1). integers (for breakpoint ids)

diff  --git a/lldb/source/Commands/CommandObjectBreakpoint.h b/lldb/source/Commands/CommandObjectBreakpoint.h
index 7e2fa045eb744..0213bcae9bda7 100644
--- a/lldb/source/Commands/CommandObjectBreakpoint.h
+++ b/lldb/source/Commands/CommandObjectBreakpoint.h
@@ -23,21 +23,21 @@ class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword {
   ~CommandObjectMultiwordBreakpoint() override;
 
   static void VerifyBreakpointOrLocationIDs(
-      Args &args, ExecutionContext &exe_ctx, CommandReturnObject &result,
+      Args &args, const ExecutionContext &exe_ctx, CommandReturnObject &result,
       BreakpointIDList *valid_ids,
       BreakpointName::Permissions ::PermissionKinds purpose) {
     VerifyIDs(args, exe_ctx, true, result, valid_ids, purpose);
   }
 
   static void
-  VerifyBreakpointIDs(Args &args, ExecutionContext &exe_ctx,
+  VerifyBreakpointIDs(Args &args, const ExecutionContext &exe_ctx,
                       CommandReturnObject &result, BreakpointIDList *valid_ids,
                       BreakpointName::Permissions::PermissionKinds purpose) {
     VerifyIDs(args, exe_ctx, false, result, valid_ids, purpose);
   }
 
 private:
-  static void VerifyIDs(Args &args, ExecutionContext &exe_ctx,
+  static void VerifyIDs(Args &args, const ExecutionContext &exe_ctx,
                         bool allow_locations, CommandReturnObject &result,
                         BreakpointIDList *valid_ids,
                         BreakpointName::Permissions::PermissionKinds purpose);

diff  --git a/lldb/source/Commands/CommandObjectBreakpointCommand.cpp b/lldb/source/Commands/CommandObjectBreakpointCommand.cpp
index 1ce10441e3ada..b3f528faffb8b 100644
--- a/lldb/source/Commands/CommandObjectBreakpointCommand.cpp
+++ b/lldb/source/Commands/CommandObjectBreakpointCommand.cpp
@@ -344,7 +344,7 @@ are no syntax errors may indicate that a function was declared but never called.
 
     BreakpointIDList valid_bp_ids;
     CommandObjectMultiwordBreakpoint::VerifyBreakpointOrLocationIDs(
-        command, m_exe_ctx, result, &valid_bp_ids,
+        command, &target, result, &valid_bp_ids,
         BreakpointName::Permissions::PermissionKinds::listPerm);
 
     m_bp_options_vec.clear();
@@ -509,7 +509,7 @@ class CommandObjectBreakpointCommandDelete : public CommandObjectParsed {
 
     BreakpointIDList valid_bp_ids;
     CommandObjectMultiwordBreakpoint::VerifyBreakpointOrLocationIDs(
-        command, m_exe_ctx, result, &valid_bp_ids,
+        command, &target, result, &valid_bp_ids,
         BreakpointName::Permissions::PermissionKinds::listPerm);
 
     if (result.Succeeded()) {


        


More information about the lldb-commits mailing list