diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp index 9a3cc32d8c324..4feca1253be20 100644 --- a/lldb/tools/lldb-dap/DAP.cpp +++ b/lldb/tools/lldb-dap/DAP.cpp @@ -126,6 +126,7 @@ DAP::DAP(Log *log, const ReplMode default_repl_mode, [&](const ProgressEvent &event) { SendJSON(event.ToJSON()); }), reverse_request_seq(0), repl_mode(default_repl_mode) { configuration.preInitCommands = std::move(pre_init_commands); + RegisterRequests(); } DAP::~DAP() = default; @@ -1652,4 +1653,46 @@ void DAP::EventThread() { } } +void DAP::RegisterRequests() { + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + RegisterRequest(); + + // Custom requests + RegisterRequest(); + RegisterRequest(); + + // Testing requests + RegisterRequest(); +} + } // namespace lldb_dap diff --git a/lldb/tools/lldb-dap/DAP.h b/lldb/tools/lldb-dap/DAP.h index cbda57d27e8d9..c2e4c2dea582e 100644 --- a/lldb/tools/lldb-dap/DAP.h +++ b/lldb/tools/lldb-dap/DAP.h @@ -188,7 +188,6 @@ struct DAP { // the old process here so we can detect this case and keep running. lldb::pid_t restarting_process_id; bool configuration_done; - llvm::StringMap> request_handlers; bool waiting_for_run_in_terminal; ProgressEventReporter progress_event_reporter; // Keep track of the last stop thread index IDs as threads won't go away @@ -377,11 +376,6 @@ struct DAP { }); } - /// Registers a request handler. - template void RegisterRequest() { - request_handlers[Handler::GetCommand()] = std::make_unique(*this); - } - /// The set of capablities supported by this adapter. protocol::Capabilities GetCapabilities(); @@ -429,6 +423,15 @@ struct DAP { void StartProgressEventThread(); private: + /// Registration of request handler. + /// @{ + void RegisterRequests(); + template void RegisterRequest() { + request_handlers[Handler::GetCommand()] = std::make_unique(*this); + } + llvm::StringMap> request_handlers; + /// @} + /// Event threads. /// @{ void EventThread(); diff --git a/lldb/tools/lldb-dap/lldb-dap.cpp b/lldb/tools/lldb-dap/lldb-dap.cpp index 6e17b13cc9e33..7a4cc70902a56 100644 --- a/lldb/tools/lldb-dap/lldb-dap.cpp +++ b/lldb/tools/lldb-dap/lldb-dap.cpp @@ -115,48 +115,6 @@ class LLDBDAPOptTable : public llvm::opt::GenericOptTable { }; } // anonymous namespace -static void RegisterRequestCallbacks(DAP &dap) { - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - dap.RegisterRequest(); - - // Custom requests - dap.RegisterRequest(); - dap.RegisterRequest(); - - // Testing requests - dap.RegisterRequest(); -} - static void PrintHelp(LLDBDAPOptTable &table, llvm::StringRef tool_name) { std::string usage_str = tool_name.str() + " options"; table.printHelp(llvm::outs(), usage_str.c_str(), "LLDB DAP", false); @@ -342,8 +300,6 @@ serveConnection(const Socket::SocketProtocol &protocol, const std::string &name, return; } - RegisterRequestCallbacks(dap); - { std::scoped_lock lock(dap_sessions_mutex); dap_sessions[io.get()] = &dap; @@ -597,8 +553,6 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } - RegisterRequestCallbacks(dap); - // used only by TestVSCode_redirection_to_console.py if (getenv("LLDB_DAP_TEST_STDOUT_STDERR_REDIRECTION") != nullptr) redirection_test();