1{
2 "oneOf": [
3 {
4 "allOf": [
5 {
6 "type": "object",
7 "required": ["request"],
8 "properties": {
9 "request": {
10 "type": "string",
11 "enum": ["launch"],
12 "description": "Request to launch a new process"
13 }
14 }
15 },
16 {
17 "type": "object",
18 "properties": {
19 "program": {
20 "type": "string",
21 "description": "The program to debug. This corresponds to the GDB 'file' command."
22 },
23 "args": {
24 "type": "array",
25 "items": {
26 "type": "string"
27 },
28 "description": "Command line arguments passed to the program. These strings are provided as command-line arguments to the inferior.",
29 "default": []
30 },
31 "cwd": {
32 "type": "string",
33 "description": "Working directory for the debugged program. GDB will change its working directory to this directory."
34 },
35 "env": {
36 "type": "object",
37 "description": "Environment variables for the debugged program. Each key is the name of an environment variable; each value is the value of that variable."
38 },
39 "stopAtBeginningOfMainSubprogram": {
40 "type": "boolean",
41 "description": "When true, GDB will set a temporary breakpoint at the program's main procedure, like the 'start' command.",
42 "default": false
43 },
44 "stopOnEntry": {
45 "type": "boolean",
46 "description": "When true, GDB will set a temporary breakpoint at the program's first instruction, like the 'starti' command.",
47 "default": false
48 }
49 },
50 "required": ["program"]
51 }
52 ]
53 },
54 {
55 "allOf": [
56 {
57 "type": "object",
58 "required": ["request"],
59 "properties": {
60 "request": {
61 "type": "string",
62 "enum": ["attach"],
63 "description": "Request to attach to an existing process"
64 }
65 }
66 },
67 {
68 "type": "object",
69 "properties": {
70 "pid": {
71 "type": "number",
72 "description": "The process ID to which GDB should attach."
73 },
74 "program": {
75 "type": "string",
76 "description": "The program to debug (optional). This corresponds to the GDB 'file' command. In many cases, GDB can determine which program is running automatically."
77 },
78 "target": {
79 "type": "string",
80 "description": "The target to which GDB should connect. This is passed to the 'target remote' command."
81 }
82 },
83 "required": ["pid"]
84 }
85 ]
86 }
87 ]
88}