Add handling for DAP errors with full body

Change-Id: I214d8247bf1115c982912dd3331add5acdcddc3f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/302850
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Helin Shiah <helinx@google.com>
This commit is contained in:
Helin Shiah 2023-05-12 19:35:51 +00:00 committed by Commit Queue
parent c0d33e45d1
commit aa9a219266
2 changed files with 14 additions and 2 deletions

View file

@ -6,6 +6,7 @@ import 'dart:async';
import 'package:meta/meta.dart';
import 'constants.dart';
import 'exceptions.dart';
import 'protocol_common.dart';
import 'protocol_generated.dart';
@ -143,13 +144,20 @@ abstract class BaseDebugAdapter<TLaunchArgs extends LaunchRequestArguments,
assert(sendResponseCalled,
'sendResponse was not called in ${request.command}');
} catch (e, s) {
// TODO(helin24): Consider adding an error type to DebugAdapterException.
final messageText = e is DebugAdapterException ? e.message : '$e';
final errorMessage = Message(
id: ErrorMessageType.general,
format: '{message}\n{stack}',
variables: {'message': messageText, 'stack': '$s'},
);
final response = Response(
success: false,
requestSeq: request.seq,
seq: _sequence++,
command: request.command,
message: e is DebugAdapterException ? e.message : '$e',
body: '$s',
message: messageText,
body: ErrorResponseBody(error: errorMessage),
);
responseWriter(response);
}

View file

@ -7,3 +7,7 @@ class Command {
static const configurationDone = 'configurationDone';
static const attach = 'attach';
}
class ErrorMessageType {
static const general = 1;
}