blob: cb3c79231ba09ac0e7e587775c0238da4443e4bf (
plain)
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
|
using System;
using System.Collections.Generic;
namespace Mono.Debugger.Soft
{
public enum StepDepth {
Into = 0,
Over = 1,
Out = 2
}
public enum StepSize {
Min = 0,
Line = 1
}
/*
* Filter which kinds of methods to skip during single stepping
*/
[Flags]
public enum StepFilter {
None = 0,
StaticCtor = 1,
/* Since protocol version 2.20 */
/* Methods which have the [DebuggerHidden] attribute */
DebuggerHidden = 2,
}
public sealed class StepEventRequest : EventRequest {
ThreadMirror step_thread;
StepDepth depth;
StepSize size;
StepFilter filter;
internal StepEventRequest (VirtualMachine vm, ThreadMirror thread) : base (vm, EventType.Step) {
if (thread == null)
throw new ArgumentNullException ("thread");
CheckMirror (vm, thread);
this.step_thread = thread;
Depth = StepDepth.Into;
Size = StepSize.Min;
}
public override void Enable () {
var mods = new List <Modifier> ();
mods.Add (new StepModifier () { Thread = step_thread.Id, Depth = (int)Depth, Size = (int)Size, Filter = (int)Filter });
SendReq (mods);
}
public new ThreadMirror Thread {
get {
return step_thread;
}
}
public StepDepth Depth {
get {
return depth;
}
set {
CheckDisabled ();
depth = value;
}
}
public StepSize Size {
get {
return size;
}
set {
CheckDisabled ();
size = value;
}
}
public StepFilter Filter {
get {
return filter;
}
set {
CheckDisabled ();
filter = value;
}
}
}
}
|