[Lldb-commits] [lldb] 8bef2f2 - [lldb-dap] Add a CMake variable for defining a welcome message (#78811)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Jan 19 15:55:44 PST 2024
Author: Walter Erquinigo
Date: 2024-01-19T18:55:40-05:00
New Revision: 8bef2f27a0f7df05c7879186cc50fc8ec4a81132
URL: https://github.com/llvm/llvm-project/commit/8bef2f27a0f7df05c7879186cc50fc8ec4a81132
DIFF: https://github.com/llvm/llvm-project/commit/8bef2f27a0f7df05c7879186cc50fc8ec4a81132.diff
LOG: [lldb-dap] Add a CMake variable for defining a welcome message (#78811)
lldb-dap instances managed by other extensions benefit from having a
welcome message with, for example, a basic user guide or a
troubleshooting message.
This PR adds a cmake variable for defining such message in a simple way.
This message appears upon initialization but before initCommands are
executed, as they might cause a failure and prevent the message from
being displayed.
Added:
Modified:
lldb/tools/lldb-dap/CMakeLists.txt
lldb/tools/lldb-dap/lldb-dap.cpp
Removed:
################################################################################
diff --git a/lldb/tools/lldb-dap/CMakeLists.txt b/lldb/tools/lldb-dap/CMakeLists.txt
index c71c80981890bd..554567eb3b0e23 100644
--- a/lldb/tools/lldb-dap/CMakeLists.txt
+++ b/lldb/tools/lldb-dap/CMakeLists.txt
@@ -46,6 +46,12 @@ add_lldb_tool(lldb-dap
Support
)
+if(LLDB_DAP_WELCOME_MESSAGE)
+ target_compile_definitions(lldb-dap
+ PRIVATE
+ -DLLDB_DAP_WELCOME_MESSAGE=\"${LLDB_DAP_WELCOME_MESSAGE}\")
+endif()
+
if(LLDB_BUILD_FRAMEWORK)
# In the build-tree, we know the exact path to the framework directory.
# The installed framework can be in
diff erent locations.
diff --git a/lldb/tools/lldb-dap/lldb-dap.cpp b/lldb/tools/lldb-dap/lldb-dap.cpp
index bb3500c21e7452..828cc67c42ddde 100644
--- a/lldb/tools/lldb-dap/lldb-dap.cpp
+++ b/lldb/tools/lldb-dap/lldb-dap.cpp
@@ -108,6 +108,14 @@ typedef void (*RequestCallback)(const llvm::json::Object &command);
enum LaunchMethod { Launch, Attach, AttachForSuspendedLaunch };
+/// Prints a welcome message on the editor if the preprocessor variable
+/// LLDB_DAP_WELCOME_MESSAGE is defined.
+static void PrintWelcomeMessage() {
+#ifdef LLDB_DAP_WELCOME_MESSAGE
+ g_dap.SendOutput(OutputType::Console, LLDB_DAP_WELCOME_MESSAGE);
+#endif
+}
+
lldb::SBValueList *GetTopLevelScope(int64_t variablesReference) {
switch (variablesReference) {
case VARREF_LOCALS:
@@ -657,6 +665,8 @@ void request_attach(const llvm::json::Object &request) {
g_dap.SetFrameFormat(GetString(arguments, "customFrameFormat"));
g_dap.SetThreadFormat(GetString(arguments, "customThreadFormat"));
+ PrintWelcomeMessage();
+
// This is a hack for loading DWARF in .o files on Mac where the .o files
// in the debug map of the main executable have relative paths which require
// the lldb-dap binary to have its working directory set to that relative
@@ -666,7 +676,7 @@ void request_attach(const llvm::json::Object &request) {
// Run any initialize LLDB commands the user specified in the launch.json
if (llvm::Error err = g_dap.RunInitCommands()) {
- response["success"] = false;
+ kkkk response["success"] = false;
EmplaceSafeString(response, "message", llvm::toString(std::move(err)));
g_dap.SendJSON(llvm::json::Value(std::move(response)));
return;
@@ -1838,10 +1848,12 @@ void request_launch(const llvm::json::Object &request) {
g_dap.SetFrameFormat(GetString(arguments, "customFrameFormat"));
g_dap.SetThreadFormat(GetString(arguments, "customThreadFormat"));
+ PrintWelcomeMessage();
+
// This is a hack for loading DWARF in .o files on Mac where the .o files
- // in the debug map of the main executable have relative paths which require
- // the lldb-dap binary to have its working directory set to that relative
- // root for the .o files in order to be able to load debug info.
+ // in the debug map of the main executable have relative paths which
+ // require the lldb-dap binary to have its working directory set to that
+ // relative root for the .o files in order to be able to load debug info.
if (!debuggerRoot.empty())
llvm::sys::fs::set_current_path(debuggerRoot);
More information about the lldb-commits
mailing list