You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/// Information about a breakpoint created in `setBreakpoints`, `setFunctionBreakpoints`, `setInstructionBreakpoints`, or `setDataBreakpoints` requests.
326
+
structBreakpoint {
327
+
/// A machine-readable explanation of why a breakpoint may not be verified.
328
+
enumclassReason : unsigned {
329
+
/// Indicates a breakpoint might be verified in the future, but
330
+
/// the adapter cannot verify it in the current state.
331
+
eBreakpointReasonPending,
332
+
/// Indicates a breakpoint was not able to be verified, and the
333
+
/// adapter does not believe it can be verified without intervention.
334
+
eBreakpointReasonFailed,
335
+
};
336
+
337
+
/// The identifier for the breakpoint. It is needed if breakpoint events are
338
+
/// used to update or remove breakpoints.
339
+
std::optional<int> id;
340
+
341
+
/// If true, the breakpoint could be set (but not necessarily at the desired
342
+
/// location).
343
+
bool verified;
344
+
345
+
/// A message about the state of the breakpoint.
346
+
/// This is shown to the user and can be used to explain why a breakpoint could
347
+
/// not be verified.
348
+
std::optional<std::string> message;
349
+
350
+
/// The source where the breakpoint is located.
351
+
std::optional<Source> source;
352
+
353
+
/// The start line of the actual range covered by the breakpoint.
354
+
std::optional<uint32_t> line;
355
+
356
+
/// Start position of the source range covered by the breakpoint. It is
357
+
/// measured in UTF-16 code units and the client capability `columnsStartAt1`
358
+
/// determines whether it is 0- or 1-based.
359
+
std::optional<uint32_t> column;
360
+
361
+
/// The end line of the actual range covered by the breakpoint.
362
+
std::optional<uint32_t> endLine;
363
+
364
+
/// End position of the source range covered by the breakpoint. It is measured
365
+
/// in UTF-16 code units and the client capability `columnsStartAt1` determines
366
+
/// whether it is 0- or 1-based.
367
+
/// If no end line is given, then the end column is assumed to be in the start
368
+
/// line.
369
+
std::optional<uint32_t> endColumn;
370
+
371
+
/// A memory reference to where the breakpoint is set.
372
+
std::optional<std::string> instructionReference;
373
+
374
+
/// The offset from the instruction reference.
375
+
/// This can be negative.
376
+
std::optional<int64_t> offset;
377
+
378
+
/// A machine-readable explanation of why a breakpoint may not be verified. If
379
+
/// a breakpoint is verified or a specific reason is not known, the adapter
380
+
/// should omit this property.
381
+
std::optional<Reason> reason;
382
+
};
383
+
llvm::json::Value toJSON(const Breakpoint &);
384
+
385
+
/// Properties of a breakpoint or logpoint passed to the `setBreakpoints` request
386
+
structSourceBreakpoint {
387
+
/// The source line of the breakpoint or logpoint.
388
+
uint32_t line;
389
+
390
+
/// Start position within source line of the breakpoint or logpoint. It is
391
+
/// measured in UTF-16 code units and the client capability `columnsStartAt1`
392
+
/// determines whether it is 0- or 1-based.
393
+
std::optional<uint32_t> column;
394
+
395
+
/// The expression for conditional breakpoints.
396
+
/// It is only honored by a debug adapter if the corresponding capability
397
+
/// `supportsConditionalBreakpoints` is true.
398
+
std::optional<std::string> condition;
399
+
400
+
/// The expression that controls how many hits of the breakpoint are ignored.
401
+
/// The debug adapter is expected to interpret the expression as needed.
402
+
/// The attribute is only honored by a debug adapter if the corresponding
403
+
/// capability `supportsHitConditionalBreakpoints` is true.
404
+
/// If both this property and `condition` are specified, `hitCondition` should
405
+
/// be evaluated only if the `condition` is met, and the debug adapter should
406
+
/// stop only if both conditions are met.
407
+
std::optional<std::string> hitCondition;
408
+
409
+
/// If this attribute exists and is non-empty, the debug adapter must not
410
+
/// 'break' (stop)
411
+
/// but log the message instead. Expressions within `{}` are interpolated.
412
+
/// The attribute is only honored by a debug adapter if the corresponding
413
+
/// capability `supportsLogPoints` is true.
414
+
/// If either `hitCondition` or `condition` is specified, then the message
415
+
/// should only be logged if those conditions are met.
416
+
std::optional<std::string> logMessage;
417
+
418
+
/// The mode of this breakpoint. If defined, this must be one of the
419
+
/// `breakpointModes` the debug adapter advertised in its `Capabilities`.
0 commit comments