forked from dotnet/diagnostics
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWebApp.script
More file actions
146 lines (118 loc) · 3.75 KB
/
WebApp.script
File metadata and controls
146 lines (118 loc) · 3.75 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#
# Tests the various SOS stack and other commands against a webapp 3.x app
#
CONTINUE
LOADSOS
!IFDEF:DOTNETDUMP
IFDEF:WINDOWS
SOSCOMMAND:SetHostRuntime
ENDIF:WINDOWS
!IFDEF:WINDOWS
COMMAND:sethostruntime
ENDIF:WINDOWS
ENDIF:DOTNETDUMP
EXTCOMMAND:clrmodules
VERIFY:\s*<HEXVAL>.*
EXTCOMMAND:modules -v
VERIFY:\s*<HEXVAL>\s+<HEXVAL>.*
EXTCOMMAND:threads -v
VERIFY:\s*<DECVAL>\s+0x<HEXVAL>\s+\(<DECVAL>\)\s+
EXTCOMMAND:registers
VERIFY:\s*([r|e]ip|pc) = 0x<HEXVAL>\s+
EXTCOMMAND:parallelstacks
EXTCOMMAND:timerinfo
VERIFY:\s*<DECVAL>\s*timers\s*
SOSCOMMAND:runtimes
EXTCOMMAND:runtimes
# Verify that ClrStack with no options works
SOSCOMMAND:ClrStack
VERIFY:.*OS Thread Id:\s+0x<HEXVAL>\s+.*
VERIFY:\s+Child\s+SP\s+IP\s+Call Site\s+
EXTCOMMAND:ClrStack
VERIFY:.*OS Thread Id:\s+0x<HEXVAL>\s+.*
VERIFY:\s+Child\s+SP\s+IP\s+Call Site\s+
# Verify that ClrStack for all threads works
SOSCOMMAND:ClrStack -all
# Verify that ClrStack with managed/native mixed works
SOSCOMMAND:ClrStack -f
VERIFY:.*OS Thread Id:\s+0x<HEXVAL>\s+.*
VERIFY:\s+Child\s+SP\s+IP\s+Call Site\s+
# Verify that ClrStack all option works (locals/params)
SOSCOMMAND:ClrStack -a
VERIFY:.*OS Thread Id:\s+0x<HEXVAL>\s+.*
VERIFY:\s+Child\s+SP\s+IP\s+Call Site\s+
# Verify that ClrStack displays registers
SOSCOMMAND:ClrStack -r
VERIFY:.*OS Thread Id:\s+0x<HEXVAL>\s+.*
VERIFY:\s+Child\s+SP\s+IP\s+Call Site\s+
VERIFY:.*\s
IFDEF:ARM
VERIFY:\s+r0=<HEXVAL>\s+r1=<HEXVAL>\s+r2=<HEXVAL>\s+
ENDIF:ARM
IFDEF:ARM64
VERIFY:\s+x0=<HEXVAL>\s+x1=<HEXVAL>\s+x2=<HEXVAL>\s+
ENDIF:ARM64
VERIFY:\s+([r|e]sp|sp|lr)=<HEXVAL>\s+([r|e]bp|lr|sp)=<HEXVAL>\s+([r|e]ip|pc)=<HEXVAL>\s+
IFDEF:X64
VERIFY:\s+rax=<HEXVAL>\s+rbx=<HEXVAL>\s+rcx=<HEXVAL>\s+
ENDIF:X64
IFDEF:X86
VERIFY:\s+eax=<HEXVAL>\s+ebx=<HEXVAL>\s+ecx=<HEXVAL>\s+
ENDIF:X86
VERIFY:.*\s
IFDEF:ARM
VERIFY:\s+r0=<HEXVAL>\s+r1=<HEXVAL>\s+r2=<HEXVAL>\s+
ENDIF:ARM
IFDEF:ARM64
VERIFY:\s+x0=<HEXVAL>\s+x1=<HEXVAL>\s+x2=<HEXVAL>\s+
ENDIF:ARM64
VERIFY:\s+([r|e]sp|sp|lr)=<HEXVAL>\s+([r|e]bp|lr|sp)=<HEXVAL>\s+([r|e]ip|pc)=<HEXVAL>\s+
IFDEF:X64
VERIFY:\s+rax=<HEXVAL>\s+rbx=<HEXVAL>\s+rcx=<HEXVAL>\s+
ENDIF:X64
IFDEF:X86
VERIFY:\s+eax=<HEXVAL>\s+ebx=<HEXVAL>\s+ecx=<HEXVAL>\s+
ENDIF:X86
# Verify that ClrStack with the ICorDebug options works
SOSCOMMAND:ClrStack -i
VERIFY:.*\s+Dumping managed stack and managed variables using ICorDebug.\s+
VERIFY:.*\s+Child\s+SP\s+IP\s+Call Site\s+
VERIFY:.*\s+Stack walk complete.\s+
# Verify that Threads (clrthreads) works
IFDEF:DOTNETDUMP
SOSCOMMAND:clrthreads
ENDIF:DOTNETDUMP
!IFDEF:DOTNETDUMP
SOSCOMMAND:Threads
ENDIF:DOTNETDUMP
VERIFY:\s*ThreadCount:\s+<DECVAL>\s+
VERIFY:\s+UnstartedThread:\s+<DECVAL>\s+
VERIFY:\s+BackgroundThread:\s+<DECVAL>\s+
VERIFY:\s+PendingThread:\s+<DECVAL>\s+
VERIFY:\s+DeadThread:\s+<DECVAL>\s+
VERIFY:\s+Hosted Runtime:\s+no\s+
VERIFY:\s+ID\s+OSID\s+ThreadOBJ\s+State.*\s+
VERIFY:\s+<DECVAL>\s+<DECVAL>\s+<HEXVAL>\s+<HEXVAL>.*\s+
SOSCOMMAND:DumpHeap -stat
VERIFY:\s*Statistics:\s+
VERIFY:\s+MT\s+Count\s+TotalSize\s+Class Name\s+
VERIFY:\s*<HEXVAL>\s+<DECVAL>\s+<DECVAL>\s+.*
VERIFY:\s*Total\s+<DECVAL>\s+objects\s+
!VERIFY:.*UNKNOWN.*
SOSCOMMAND:DumpAsync --completed
VERIFY:\s*STACK <DECVAL>\s*
VERIFY?:\s*<< Awaiting: <HEXVAL>\s+<HEXVAL>\s+.* >>\s+
VERIFY:\s*<HEXVAL>\s+<HEXVAL>\s+\((<DECVAL>)?\)\s+.*
SOSCOMMAND:DumpAsync --stats
VERIFY:\s+MT\s+Count\s+Type\s+
VERIFY:\s*<HEXVAL>\s+<DECVAL>\s+.*
!VERIFY:.*UNKNOWN.*
SOSCOMMAND:DumpAsync --methodtable 0x<POUT>\s+MT\s+Count\s+Type\s+(<HEXVAL>)\s+<DECVAL>\s+.*<POUT>
VERIFY:\s*STACK <DECVAL>\s*
VERIFY?:\s*<< Awaiting: <HEXVAL>\s+<HEXVAL>\s+.* >>\s+
VERIFY:\s*<HEXVAL>\s+<HEXVAL>\s+\((<DECVAL>)?\)\s+.*
SOSCOMMAND:DumpMT --stats <PREVPOUT>
!VERIFY:\s*<HEXVAL> is not a MethodTable
SOSCOMMAND:DumpAsync --coalesce
VERIFY:\s*STACKS <DECVAL>\s*
VERIFY:\s*\[<DECVAL>\]\s+<HEXVAL>\s+\((<DECVAL>)?\)\s+.*