[Lldb-commits] [lldb] [lldb-dap][NFC] Create helper function DAP::ProcessIsNotStopped (PR #180056)

via lldb-commits lldb-commits at lists.llvm.org
Thu Feb 5 14:51:24 PST 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Ebuka Ezike (da-viper)

<details>
<summary>Changes</summary>

>From https://github.com/llvm/llvm-project/pull/179202#discussion_r2757981118

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


10 Files Affected:

- (modified) lldb/tools/lldb-dap/DAP.cpp (+5) 
- (modified) lldb/tools/lldb-dap/DAP.h (+2) 
- (modified) lldb/tools/lldb-dap/Handler/EvaluateRequestHandler.cpp (+1-2) 
- (modified) lldb/tools/lldb-dap/Handler/NextRequestHandler.cpp (+1-1) 
- (modified) lldb/tools/lldb-dap/Handler/ReadMemoryRequestHandler.cpp (+1-2) 
- (modified) lldb/tools/lldb-dap/Handler/StackTraceRequestHandler.cpp (+1-2) 
- (modified) lldb/tools/lldb-dap/Handler/StepInRequestHandler.cpp (+1-1) 
- (modified) lldb/tools/lldb-dap/Handler/StepInTargetsRequestHandler.cpp (+1-2) 
- (modified) lldb/tools/lldb-dap/Handler/StepOutRequestHandler.cpp (+1-1) 
- (modified) lldb/tools/lldb-dap/Handler/WriteMemoryRequestHandler.cpp (+1-2) 


``````````diff
diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp
index 5ef384706aab0..2eee318237d49 100644
--- a/lldb/tools/lldb-dap/DAP.cpp
+++ b/lldb/tools/lldb-dap/DAP.cpp
@@ -208,6 +208,11 @@ void DAP::PopulateExceptionBreakpoints() {
   }
 }
 
+bool DAP::ProcessIsNotStopped() {
+  const lldb::StateType process_state = target.GetProcess().GetState();
+  return !lldb::SBDebugger::StateIsStoppedState(process_state);
+}
+
 ExceptionBreakpoint *DAP::GetExceptionBreakpoint(llvm::StringRef filter) {
   for (auto &bp : exception_breakpoints) {
     if (bp.GetFilter() == filter)
diff --git a/lldb/tools/lldb-dap/DAP.h b/lldb/tools/lldb-dap/DAP.h
index 657105c8dd6b9..34d6a29b3c110 100644
--- a/lldb/tools/lldb-dap/DAP.h
+++ b/lldb/tools/lldb-dap/DAP.h
@@ -255,6 +255,8 @@ struct DAP final : public DAPTransport::MessageHandler {
 
   void PopulateExceptionBreakpoints();
 
+  bool ProcessIsNotStopped();
+
   /// Attempt to determine if an expression is a variable expression or
   /// lldb command using a heuristic based on the first term of the
   /// expression.
diff --git a/lldb/tools/lldb-dap/Handler/EvaluateRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/EvaluateRequestHandler.cpp
index 0eb5c57732350..82a011b8088df 100644
--- a/lldb/tools/lldb-dap/Handler/EvaluateRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/EvaluateRequestHandler.cpp
@@ -97,8 +97,7 @@ EvaluateRequestHandler::Run(const EvaluateArguments &arguments) const {
     return body;
   }
 
-  const lldb::StateType process_state = dap.target.GetProcess().GetState();
-  if (!lldb::SBDebugger::StateIsStoppedState(process_state))
+  if (dap.ProcessIsNotStopped())
     return llvm::make_error<DAPError>(
         "Cannot evaluate expressions while the process is running. Pause "
         "the process and try again.",
diff --git a/lldb/tools/lldb-dap/Handler/NextRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/NextRequestHandler.cpp
index ecb086b36c817..59df5498943f2 100644
--- a/lldb/tools/lldb-dap/Handler/NextRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/NextRequestHandler.cpp
@@ -27,7 +27,7 @@ namespace lldb_dap {
 /// adapter first sends the response and then a `stopped` event (with reason
 /// `step`) after the step has completed.
 Error NextRequestHandler::Run(const NextArguments &args) const {
-  if (!SBDebugger::StateIsStoppedState(dap.target.GetProcess().GetState()))
+  if (dap.ProcessIsNotStopped())
     return make_error<NotStoppedError>();
 
   lldb::SBThread thread = dap.GetLLDBThread(args.threadId);
diff --git a/lldb/tools/lldb-dap/Handler/ReadMemoryRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/ReadMemoryRequestHandler.cpp
index 374dc4516aa2d..32752f51284ec 100644
--- a/lldb/tools/lldb-dap/Handler/ReadMemoryRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/ReadMemoryRequestHandler.cpp
@@ -21,8 +21,7 @@ llvm::Expected<protocol::ReadMemoryResponseBody>
 ReadMemoryRequestHandler::Run(const protocol::ReadMemoryArguments &args) const {
   const lldb::addr_t raw_address = args.memoryReference + args.offset;
 
-  lldb::SBProcess process = dap.target.GetProcess();
-  if (!lldb::SBDebugger::StateIsStoppedState(process.GetState()))
+  if (dap.ProcessIsNotStopped())
     return llvm::make_error<NotStoppedError>();
 
   const uint64_t count_read = std::max<uint64_t>(args.count, 1);
diff --git a/lldb/tools/lldb-dap/Handler/StackTraceRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/StackTraceRequestHandler.cpp
index 9dc9b3735734d..6e6f9b0e5b285 100644
--- a/lldb/tools/lldb-dap/Handler/StackTraceRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/StackTraceRequestHandler.cpp
@@ -190,8 +190,7 @@ static bool FillStackFrames(DAP &dap, lldb::SBThread &thread,
 
 llvm::Expected<protocol::StackTraceResponseBody>
 StackTraceRequestHandler::Run(const protocol::StackTraceArguments &args) const {
-  const lldb::StateType process_state = dap.target.GetProcess().GetState();
-  if (!lldb::SBDebugger::StateIsStoppedState(process_state))
+  if (dap.ProcessIsNotStopped())
     return llvm::make_error<NotStoppedError>();
 
   lldb::SBThread thread = dap.GetLLDBThread(args.threadId);
diff --git a/lldb/tools/lldb-dap/Handler/StepInRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/StepInRequestHandler.cpp
index 8f11d10389b1c..ba4457e62731c 100644
--- a/lldb/tools/lldb-dap/Handler/StepInRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/StepInRequestHandler.cpp
@@ -32,7 +32,7 @@ namespace lldb_dap {
 // possible targets for a given source line can be retrieved via the
 // `stepInTargets` request.
 Error StepInRequestHandler::Run(const StepInArguments &args) const {
-  if (!SBDebugger::StateIsStoppedState(dap.target.GetProcess().GetState()))
+  if (dap.ProcessIsNotStopped())
     return make_error<NotStoppedError>();
 
   SBThread thread = dap.GetLLDBThread(args.threadId);
diff --git a/lldb/tools/lldb-dap/Handler/StepInTargetsRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/StepInTargetsRequestHandler.cpp
index 6aaa59af9e4d9..2b41626bb74fb 100644
--- a/lldb/tools/lldb-dap/Handler/StepInTargetsRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/StepInTargetsRequestHandler.cpp
@@ -24,8 +24,7 @@ namespace lldb_dap {
 // `supportsStepInTargetsRequest` is true.
 llvm::Expected<StepInTargetsResponseBody>
 StepInTargetsRequestHandler::Run(const StepInTargetsArguments &args) const {
-  const lldb::StateType process_state = dap.target.GetProcess().GetState();
-  if (!lldb::SBDebugger::StateIsStoppedState(process_state))
+  if (dap.ProcessIsNotStopped())
     return llvm::make_error<NotStoppedError>();
 
   dap.step_in_targets.clear();
diff --git a/lldb/tools/lldb-dap/Handler/StepOutRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/StepOutRequestHandler.cpp
index baf790a5f27f0..61bde76e08a3d 100644
--- a/lldb/tools/lldb-dap/Handler/StepOutRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/StepOutRequestHandler.cpp
@@ -30,7 +30,7 @@ namespace lldb_dap {
 /// The debug adapter first sends the response and then a `stopped` event (with
 /// reason `step`) after the step has completed."
 Error StepOutRequestHandler::Run(const StepOutArguments &arguments) const {
-  if (!SBDebugger::StateIsStoppedState(dap.target.GetProcess().GetState()))
+  if (dap.ProcessIsNotStopped())
     return make_error<NotStoppedError>();
 
   lldb::SBThread thread = dap.GetLLDBThread(arguments.threadId);
diff --git a/lldb/tools/lldb-dap/Handler/WriteMemoryRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/WriteMemoryRequestHandler.cpp
index 3e34e488d1158..17406ce1426e6 100644
--- a/lldb/tools/lldb-dap/Handler/WriteMemoryRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/WriteMemoryRequestHandler.cpp
@@ -27,8 +27,7 @@ llvm::Expected<WriteMemoryResponseBody>
 WriteMemoryRequestHandler::Run(const WriteMemoryArguments &args) const {
   const lldb::addr_t address = args.memoryReference + args.offset;
 
-  lldb::SBProcess process = dap.target.GetProcess();
-  if (!lldb::SBDebugger::StateIsStoppedState(process.GetState()))
+  if (dap.ProcessIsNotStopped())
     return llvm::make_error<NotStoppedError>();
 
   if (args.data.empty()) {

``````````

</details>


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


More information about the lldb-commits mailing list