-
Notifications
You must be signed in to change notification settings - Fork 394
Expand file tree
/
Copy pathOtherCommands.script
More file actions
154 lines (121 loc) · 4.47 KB
/
OtherCommands.script
File metadata and controls
154 lines (121 loc) · 4.47 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
147
148
149
150
151
152
153
154
#
# Tests the various SOS commands with the SymbolTestApp debuggee
#
LOADSOS
# Verify that bpmd works
IFDEF:LIVE
# Issue: https://github.com/dotnet/diagnostics/issues/2459
!IFDEF:ALPINE
# Issue: https://github.com/dotnet/diagnostics/issues/2673
!IFDEF:UNIX_SINGLE_FILE_APP
IFDEF:DESKTOP
SOSCOMMAND:bpmd SymbolTestApp.exe SymbolTestApp.Program.Main
ENDIF:DESKTOP
!IFDEF:DESKTOP
SOSCOMMAND:bpmd SymbolTestApp.dll SymbolTestApp.Program.Main
ENDIF:DESKTOP
CONTINUE
# Unloads desktop sos and reloads new SOS
IFDEF:DESKTOP
LOADSOS
ENDIF:DESKTOP
SOSCOMMAND:ClrStack
VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+SymbolTestApp\.Program\.Main\(.*\)\s+\[(?i:.*[\\|/]SymbolTestApp\.cs) @ 16\]\s*
SOSCOMMAND:bpmd -clearall
SOSCOMMAND:bpmd SymbolTestApp.cs:29
IFDEF:DESKTOP
SOSCOMMAND:bpmd SymbolTestApp.exe SymbolTestApp.Program.Foo4
ENDIF:DESKTOP
!IFDEF:DESKTOP
SOSCOMMAND:bpmd SymbolTestApp.dll SymbolTestApp.Program.Foo4
ENDIF:DESKTOP
CONTINUE
SOSCOMMAND:ClrStack
IFDEF:DESKTOP
VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+SymbolTestApp\.Program\.Foo2\(.*\)\s+\[(?i:.*[\\|/]SymbolTestApp\.cs) @ 29\]\s*
ENDIF:DESKTOP
!IFDEF:DESKTOP
VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+SymbolTestApp\.Program\.Foo2\(.*\)\s+\[(?i:.*[\\|/]SymbolTestApp\.cs) @ 28\]\s*
ENDIF:DESKTOP
CONTINUE
SOSCOMMAND:ClrStack
VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+SymbolTestApp\.Program\.Foo4\(.*\)\s+\[(?i:.*[\\|/]SymbolTestApp\.cs) @ 34\]\s*
ENDIF:UNIX_SINGLE_FILE_APP
ENDIF:ALPINE
ENDIF:LIVE
CONTINUE
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:ClrStack
EXTCOMMAND:ThreadPool
EXTCOMMAND:VerifyHeap
SOSCOMMAND:DumpHeap
VERIFY:\s+Address\s+MT\s+Size\s+
VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+<DECVAL>.*
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+
SOSCOMMAND:DumpDomain
VERIFY:\s*System Domain:\s+<HEXVAL>\s+
VERIFY:\s*LowFrequencyHeap:\s+<HEXVAL>\s+
VERIFY:\s*HighFrequencyHeap:\s+<HEXVAL>\s+
VERIFY:\s*Domain 1:\s+<HEXVAL>\s+
!IFDEF:SINGLE_FILE_APP
VERIFY:\s*Assembly:\s+<HEXVAL>\s+\[.*(System\.Private\.CoreLib(\.ni)?\.dll|mscorlib.dll)\]\s+
SOSCOMMAND:DumpAssembly <POUT>\s*Assembly:\s+(<HEXVAL>)\s+\[.*<POUT>
VERIFY:\s*Parent Domain:\s+<HEXVAL>\s+
VERIFY:\s*Name:\s+.*(System\.Private\.CoreLib(\.ni)?\.dll|mscorlib.dll)\s+
ENDIF:SINGLE_FILE_APP
SOSCOMMAND:DumpModule <POUT>\s+Module\s+(<HEXVAL>)\s+.*<POUT>
VERIFY:\s*PEAssembly:\s+<HEXVAL>\s+
VERIFY:\s*ModuleId:\s+<HEXVAL>\s+
VERIFY:\s*LoaderHeap:\s+<HEXVAL>\s+
VERIFY:\s*TypeDefToMethodTableMap:\s+<HEXVAL>\s+
# Verify that IP2MD, DumpMD, DumpClass and DumpMT (uses IP from ClrStack)
SOSCOMMAND:ClrStack
SOSCOMMAND:IP2MD <POUT>.*\s+(<HEXVAL>)\s+SymbolTestApp\.Program\.Foo1.*\s+<POUT>
VERIFY:.*\s+Method Name:\s+SymbolTestApp\.Program\.Foo1\(Int32, System\.String\)\s+
VERIFY:.*\s+Source file:\s+(?i:.*[\\|/]SymbolTestApp\.cs) @ 24\s+
# Verify DumpMD
SOSCOMMAND:DumpMD <POUT>\s+MethodDesc:\s+(<HEXVAL>)\s+<POUT>
VERIFY:.*\s+Method Name:\s+SymbolTestApp\.Program\.Foo1\(Int32, System\.String\)\s+
# Verify DumpClass
SOSCOMMAND:DumpClass <POUT>\s*Class:\s+(<HEXVAL>)\s+<POUT>
VERIFY:\s*Class Name:\s+SymbolTestApp.Program\s+
VERIFY:\s*File:\s+.*SymbolTestApp\.(dll|exe)\s+
# Verify DumpMT
!IFDEF:MAJOR_RUNTIME_VERSION_GE_7
# https://github.com/dotnet/diagnostics/issues/3516
SOSCOMMAND:DumpMT <POUT>\s*Method Table:\s+(<HEXVAL>)\s+<POUT>
VERIFY:\s*Name:\s+SymbolTestApp.Program\s+
VERIFY:\s*File:\s+.*SymbolTestApp\.(dll|exe)\s+
ENDIF:MAJOR_RUNTIME_VERSION_GE_7
SOSCOMMAND:FinalizeQueue
VERIFY:\s*SyncBlocks to be cleaned up:\s+<DECVAL>\s+
VERIFY:(\s*Free-Threaded Interfaces to be released:\s+<DECVAL>\s+)?
VERIFY:\s*Statistics for all finalizable objects.*:\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+
EXTCOMMAND:logopen %LOG_PATH%/%TEST_NAME%.%LOG_SUFFIX%.consolelog
EXTCOMMAND:logging %LOG_PATH%/%TEST_NAME%.%LOG_SUFFIX%.diaglog
EXTCOMMAND:clrmodules -v
VERIFY:\s*<HEXVAL>.*
SOSCOMMAND:SyncBlk
# On Linux/MacOS we sometimes get "Error requesting SyncBlk data" error from the DAC.
IFDEF:WINDOWS
VERIFY:\s*Index\s+SyncBlock\s+MonitorHeld\s+Recursion\s+Owning\s+Thread\s+Info\s+SyncBlock\s+Owner\s+
VERIFY:\s*Total\s+<DECVAL>
VERIFY:\s*CCW\s+<DECVAL>
VERIFY:\s*RCW\s+<DECVAL>
ENDIF:WINDOWS
SOSCOMMAND:GCHandles
SOSCOMMAND:DumpGCData
SOSCOMMAND:DumpRuntimeTypes
EXTCOMMAND:logclose
EXTCOMMAND:logging --disable