61 lines · cpp
1//===-- PauseRequestHandler.cpp -------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "DAP.h"10#include "EventHelper.h"11#include "JSONUtils.h"12#include "RequestHandler.h"13 14namespace lldb_dap {15 16// "PauseRequest": {17// "allOf": [ { "$ref": "#/definitions/Request" }, {18// "type": "object",19// "description": "Pause request; value of command field is 'pause'. The20// request suspenses the debuggee. The debug adapter first sends the21// PauseResponse and then a StoppedEvent (event type 'pause') after the22// thread has been paused successfully.", "properties": {23// "command": {24// "type": "string",25// "enum": [ "pause" ]26// },27// "arguments": {28// "$ref": "#/definitions/PauseArguments"29// }30// },31// "required": [ "command", "arguments" ]32// }]33// },34// "PauseArguments": {35// "type": "object",36// "description": "Arguments for 'pause' request.",37// "properties": {38// "threadId": {39// "type": "integer",40// "description": "Pause execution for this thread."41// }42// },43// "required": [ "threadId" ]44// },45// "PauseResponse": {46// "allOf": [ { "$ref": "#/definitions/Response" }, {47// "type": "object",48// "description": "Response to 'pause' request. This is just an49// acknowledgement, so no body field is required."50// }]51// }52void PauseRequestHandler::operator()(const llvm::json::Object &request) const {53 llvm::json::Object response;54 FillResponse(request, response);55 lldb::SBProcess process = dap.target.GetProcess();56 lldb::SBError error = process.Stop();57 dap.SendJSON(llvm::json::Value(std::move(response)));58}59 60} // namespace lldb_dap61