https://github.com/ashgti created https://github.com/llvm/llvm-project/pull/170795
This adds an introductory message to try to inform users on how the debug console works and adds a little more information on the current target/process, similiar to the lldb driver. Here is an example of the introduction: ``` To get started with the lldb-dap debug console try "<variable>", "help [<cmd-name>]", or "apropos <search-word>". For more information visit https://github.com/llvm/llvm-project/blob/main/lldb/tools/lldb-dap/README.md Executable binary set to 'a.out' (arm64-apple-macosx15.0.0). Attached to process 1234. ``` We may want to change the URL for more information to a page under lldb.llvm.org but that does not yet exist. >From 60cb07b17688241060c1c71c97fb1d752774a544 Mon Sep 17 00:00:00 2001 From: John Harrison <[email protected]> Date: Thu, 4 Dec 2025 18:18:53 -0800 Subject: [PATCH] [lldb-dap] Add an introductory message on startup. This adds an introductory message to try to inform users on how the debug console works and adds a little more information on the current target/process, similiar to the lldb driver. Here is an example of the introduction: ``` To get started with the lldb-dap debug console try "<variable>", "help [<cmd-name>]", or "apropos <search-word>". For more information visit https://github.com/llvm/llvm-project/blob/main/lldb/tools/lldb-dap/README.md Executable binary set to 'a.out' (arm64-apple-macosx15.0.0). Attached to process 1234. ``` We may want to change the URL for more information to a page under lldb.llvm.org but that does not yet exist. --- .../ConfigurationDoneRequestHandler.cpp | 2 ++ .../tools/lldb-dap/Handler/RequestHandler.cpp | 21 +++++++++++++++++++ lldb/tools/lldb-dap/Handler/RequestHandler.h | 4 ++++ 3 files changed, 27 insertions(+) diff --git a/lldb/tools/lldb-dap/Handler/ConfigurationDoneRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/ConfigurationDoneRequestHandler.cpp index 1bfe7b7f6ef5c..5ef44cba4ebcc 100644 --- a/lldb/tools/lldb-dap/Handler/ConfigurationDoneRequestHandler.cpp +++ b/lldb/tools/lldb-dap/Handler/ConfigurationDoneRequestHandler.cpp @@ -50,6 +50,8 @@ ConfigurationDoneRequestHandler::Run(const ConfigurationDoneArguments &) const { /// lldb-dap specific editor extension. SendExtraCapabilities(dap); + PrintIntroductionMessage(); + // Clients can request a baseline of currently existing threads after // we acknowledge the configurationDone request. // Client requests the baseline of currently existing threads after diff --git a/lldb/tools/lldb-dap/Handler/RequestHandler.cpp b/lldb/tools/lldb-dap/Handler/RequestHandler.cpp index d67437ad5b3ae..3841db45eae8b 100644 --- a/lldb/tools/lldb-dap/Handler/RequestHandler.cpp +++ b/lldb/tools/lldb-dap/Handler/RequestHandler.cpp @@ -17,6 +17,7 @@ #include "RunInTerminal.h" #include "lldb/API/SBDefines.h" #include "lldb/API/SBEnvironment.h" +#include "lldb/API/SBStream.h" #include "llvm/Support/Error.h" #include <mutex> @@ -261,6 +262,26 @@ void BaseRequestHandler::PrintWelcomeMessage() const { #endif } +void BaseRequestHandler::PrintIntroductionMessage() const { + lldb::SBStream msg; + msg.Print("To get started with the lldb-dap debug console try " + "\"<variable>\", \"help [<cmd-name>]\", or \"apropos " + "<search-word>\".\r\nFor more information visit " + "https://github.com/llvm/llvm-project/blob/main/lldb/tools/" + "lldb-dap/README.md\r\n"); + if (dap.target && dap.target.GetExecutable()) { + char path[PATH_MAX] = {0}; + dap.target.GetExecutable().GetPath(path, sizeof(path)); + msg.Printf("Executable binary set to '%s' (%s).\r\n", path, + dap.target.GetTriple()); + } + if (dap.target.GetProcess()) { + msg.Printf("Attached to process %llu.\r\n", + dap.target.GetProcess().GetProcessID()); + } + dap.SendOutput(OutputType::Console, {msg.GetData(), msg.GetSize()}); +} + bool BaseRequestHandler::HasInstructionGranularity( const llvm::json::Object &arguments) const { if (std::optional<llvm::StringRef> value = arguments.getString("granularity")) diff --git a/lldb/tools/lldb-dap/Handler/RequestHandler.h b/lldb/tools/lldb-dap/Handler/RequestHandler.h index 5d235352b7738..c0b1722d26a9b 100644 --- a/lldb/tools/lldb-dap/Handler/RequestHandler.h +++ b/lldb/tools/lldb-dap/Handler/RequestHandler.h @@ -64,6 +64,10 @@ class BaseRequestHandler { /// LLDB_DAP_WELCOME_MESSAGE is defined. void PrintWelcomeMessage() const; + /// Prints an introduction to the debug console and information about the + /// debug session. + void PrintIntroductionMessage() const; + // Takes a LaunchRequest object and launches the process, also handling // runInTerminal if applicable. It doesn't do any of the additional // initialization and bookkeeping stuff that is needed for `request_launch`. _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
