forked from microsoft/vscode-cpptools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdebugAdapterTracker.ts
More file actions
100 lines (92 loc) · 2.67 KB
/
Copy pathdebugAdapterTracker.ts
File metadata and controls
100 lines (92 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import * as vscode from 'vscode';
enum DebugSessionState {
Unknown,
Started,
Running,
Stopped,
Exited
}
export class CppDbgDebugAdapterTracker implements vscode.DebugAdapterTracker {
private state: DebugSessionState;
constructor(private session: vscode.DebugSession) {
this.state = DebugSessionState.Unknown;
}
sendEvaluateRequest(expression: string): Thenable<any> {
if (this.state == DebugSessionState.Stopped)
{
return this.session.customRequest("evaluate", {
expression: "-exec " + expression,
context: "repl",
frameId: -1
})
}
return Promise.resolve();
}
sendReadMemoryRequest(address: string, offset: number, count: number): Thenable<any> {
if (this.state == DebugSessionState.Stopped)
{
return this.session.customRequest("readMemory", {
memoryReference: address,
offset: offset,
count: count
})
}
return Promise.resolve();
}
/**
* A session with the debug adapter is about to be started.
*/
onWillStartSession?(): void {
this.state = DebugSessionState.Started;
console.log("Started Session")
}
/**
* The debug adapter is about to receive a Debug Adapter Protocol message from VS Code.
*/
onWillReceiveMessage?(message: any): void {
console.log("Message Incomming!")
}
/**
* The debug adapter has sent a Debug Adapter Protocol message to VS Code.
*/
onDidSendMessage?(message: any): void {
if (message)
{
console.log(message)
switch (message.type)
{
case "event":
switch(message.event)
{
case "stopped":
this.state = DebugSessionState.Stopped;
break;
default:
break;
}
case "response":
break
default:
break;
}
}
}
/**
* The debug adapter session is about to be stopped.
*/
onWillStopSession?(): void {
console.log("Stopping soon.")
}
/**
* An error with the debug adapter has occurred.
*/
onError?(error: Error): void {
console.log("Uh oh!")
}
/**
* The debug adapter has exited with the given exit code or signal.
*/
onExit?(code: number | undefined, signal: string | undefined): void {
console.log("Exiting!")
}
}