Skip to content

Commit 10339ed

Browse files
author
Mike McLaughlin
authored
Prepare SOS for single file support and add desktop CLR support (#658)
Prepare SOS for single file support and add desktop CLR support Add defines and functions for the runtime, dac and dbi modules/dlls names. Also supports desktop CLR Add minidump retry for ERROR_PARTIAL_COPY
1 parent 125ea40 commit 10339ed

36 files changed

+487
-262
lines changed

src/SOS/SOS.Hosting/SOSHost.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ struct SOSNetCoreCallbacks
157157

158158
internal readonly IDataReader DataReader;
159159

160+
const string DesktopRuntimeModuleName = "clr";
161+
160162
private static readonly string s_coreclrModuleName;
161163

162164
private readonly AnalyzeContext _analyzeContext;
@@ -1109,6 +1111,9 @@ internal int GetRegister(
11091111

11101112
internal static bool IsRuntimeModule(ModuleInfo module)
11111113
{
1114+
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && IsModuleEqual(module, DesktopRuntimeModuleName)) {
1115+
return true;
1116+
}
11121117
return IsModuleEqual(module, s_coreclrModuleName);
11131118
}
11141119

src/SOS/SOS.UnitTests/ConfigFiles/Unix/Debugger.Tests.Config.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
<Options>
118118
<Option Condition="$(OS) == Linux">
119119
<SOSPath>$(InstallDir)/libsosplugin.so</SOSPath>
120+
<DotNetDumpHost>$(RepoRootDir)/.dotnet/dotnet</DotNetDumpHost>
120121
<DotNetDumpPath>$(RootBinDir)/bin/dotnet-dump/$(TargetConfiguration)/netcoreapp2.1/publish/dotnet-dump.dll</DotNetDumpPath>
121122
<DebuggeeDumpOutputRootDir>$(DumpDir)/$(TestProduct)/$(RuntimeFrameworkVersion)/$(BuildProjectFramework)</DebuggeeDumpOutputRootDir>
122123
<DebuggeeDumpInputRootDir>$(DebuggeeDumpOutputRootDir)</DebuggeeDumpInputRootDir>

src/SOS/SOS.UnitTests/ConfigFiles/Windows/Debugger.Tests.Config.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,6 @@
128128
<HostExe>$(RepoRootDir)\.dotnet\dotnet.exe</HostExe>
129129
<HostArgs>--fx-version $(RuntimeFrameworkVersion)</HostArgs>
130130
<RuntimeSymbolsPath>$(RepoRootDir)\.dotnet\shared\Microsoft.NETCore.App\$(RuntimeFrameworkVersion)</RuntimeSymbolsPath>
131-
<SOSPath>$(InstallDir)\sos.dll</SOSPath>
132-
<DotNetDumpPath>$(RootBinDir)/bin/dotnet-dump/$(TargetConfiguration)/netcoreapp2.1/publish/dotnet-dump.dll</DotNetDumpPath>
133131
</Option>
134132
<!--
135133
Desktop Runtime (debuggees cli built)
@@ -151,10 +149,12 @@
151149
<FrameworkDirPath Condition="$(TargetArchitecture) == x64">$(WinDir)\Microsoft.Net\Framework64\v4.0.30319\</FrameworkDirPath>
152150
<FrameworkDirPath Condition="$(TargetArchitecture) != x64">$(WinDir)\Microsoft.Net\Framework\v4.0.30319\</FrameworkDirPath>
153151
<RuntimeSymbolsPath>$(FrameworkDirPath)</RuntimeSymbolsPath>
154-
<SOSPath>$(FrameworkDirPath)\sos.dll</SOSPath>
155152
</Option>
156153
</Options>
157154

155+
<SOSPath>$(InstallDir)\sos.dll</SOSPath>
156+
<DotNetDumpHost>$(RepoRootDir)\.dotnet\dotnet.exe</DotNetDumpHost>
157+
<DotNetDumpPath>$(RootBinDir)\bin\dotnet-dump\$(TargetConfiguration)\netcoreapp2.1\publish\dotnet-dump.dll</DotNetDumpPath>
158158
<DebuggeeDumpOutputRootDir>$(DumpDir)\$(TestProduct)\$(RuntimeFrameworkVersion)\$(BuildProjectFramework)</DebuggeeDumpOutputRootDir>
159159
<DebuggeeDumpInputRootDir>$(DebuggeeDumpOutputRootDir)</DebuggeeDumpInputRootDir>
160160
</Configuration>

src/SOS/SOS.UnitTests/Debuggees/DivZero/DivZero.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77
</Project>

src/SOS/SOS.UnitTests/Debuggees/GCWhere/GCWhere.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77
</Project>

src/SOS/SOS.UnitTests/Debuggees/NestedExceptionTest/NestedExceptionTest.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77
</Project>

src/SOS/SOS.UnitTests/Debuggees/Overflow/Overflow.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77
</Project>

src/SOS/SOS.UnitTests/Debuggees/ReflectionTest/ReflectionTest.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77
</Project>

src/SOS/SOS.UnitTests/Debuggees/SimpleThrow/SimpleThrow.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77
</Project>

src/SOS/SOS.UnitTests/Debuggees/SymbolTestApp/SymbolTestApp/SymbolTestApp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
<DefineConstants Condition="'$(TargetFramework)' == 'net462'">$(DefineConstants);FULL_CLR</DefineConstants>
77
</PropertyGroup>
88

src/SOS/SOS.UnitTests/Debuggees/SymbolTestApp/SymbolTestDll/SymbolTestDll.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<PropertyGroup>
33
<OutputType>Library</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77
</Project>

src/SOS/SOS.UnitTests/Debuggees/TaskNestedException/RandomUserLibrary/RandomUserLibrary.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<PropertyGroup>
33
<OutputType>Library</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77
</Project>

src/SOS/SOS.UnitTests/Debuggees/TaskNestedException/TaskNestedException/TaskNestedException.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework Condition="'$(BuildProjectFramework)' != ''">$(BuildProjectFramework)</TargetFramework>
5-
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp1.1;netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
5+
<TargetFrameworks Condition="'$(BuildProjectFramework)' == ''">netcoreapp2.1;netcoreapp3.0</TargetFrameworks>
66
</PropertyGroup>
77

88
<ItemGroup>

src/SOS/SOS.UnitTests/SOS.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ private async Task RunTest(string scriptName, bool testLive = true, bool testDum
7474
}
7575
}
7676

77-
// With the dotnet-dump analyze tool
78-
if (information.TestConfiguration.DotNetDumpPath() != null)
77+
// Using the dotnet-dump analyze tool if the path exists in the config file. Don't test dotnet-dump on triage dumps when running on desktop CLR.
78+
if (information.TestConfiguration.DotNetDumpPath() != null && (information.TestConfiguration.IsNETCore || information.DumpType != SOSRunner.DumpType.Triage))
7979
{
8080
using (SOSRunner runner = await SOSRunner.StartDebugger(information, SOSRunner.DebuggerAction.LoadDumpWithDotNetDump))
8181
{

src/SOS/SOS.UnitTests/SOSRunner.cs

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -282,9 +282,9 @@ public static async Task CreateDump(TestInformation information)
282282
ITestOutputHelper dotnetDumpOutputHelper = new IndentedTestOutputHelper(outputHelper, " ");
283283
try
284284
{
285-
if (string.IsNullOrWhiteSpace(config.HostExe) || string.IsNullOrWhiteSpace(config.DotNetDumpPath()))
285+
if (string.IsNullOrWhiteSpace(config.DotNetDumpHost()) || string.IsNullOrWhiteSpace(config.DotNetDumpPath()))
286286
{
287-
throw new SkipTestException("dotnet-dump collect needs HostExe and DotNetDumpPath config variables");
287+
throw new SkipTestException("dotnet-dump collect needs DotNetDumpHost and DotNetDumpPath config variables");
288288
}
289289

290290
// Wait until the debuggee gets started. It needs time to spin up before generating the core dump.
@@ -300,7 +300,7 @@ public static async Task CreateDump(TestInformation information)
300300
dotnetDumpArguments.Append(config.DotNetDumpPath());
301301
dotnetDumpArguments.AppendFormat(" collect --process-id {0} --output %DUMP_NAME%", processRunner.ProcessId);
302302

303-
ProcessRunner dotnetDumpRunner = new ProcessRunner(config.HostExe, ReplaceVariables(variables, dotnetDumpArguments.ToString())).
303+
ProcessRunner dotnetDumpRunner = new ProcessRunner(config.DotNetDumpHost(), ReplaceVariables(variables, dotnetDumpArguments.ToString())).
304304
WithLog(new TestRunner.TestLogger(dotnetDumpOutputHelper)).
305305
WithTimeout(TimeSpan.FromMinutes(5)).
306306
WithExpectedExitCode(0);
@@ -447,6 +447,9 @@ public static async Task<SOSRunner> StartDebugger(TestInformation information, D
447447
// Turn off warnings that can happen in the middle of a command's output
448448
initialCommands.Add(".outmask- 0x244");
449449
initialCommands.Add("!sym quiet");
450+
451+
// Turn on source/line numbers
452+
initialCommands.Add(".lines");
450453
break;
451454

452455
case NativeDebugger.Lldb:
@@ -532,15 +535,15 @@ public static async Task<SOSRunner> StartDebugger(TestInformation information, D
532535
{
533536
throw new ArgumentException($"{action} not supported for dotnet-dump testing");
534537
}
535-
if (string.IsNullOrWhiteSpace(config.HostExe))
538+
if (string.IsNullOrWhiteSpace(config.DotNetDumpHost()))
536539
{
537-
throw new ArgumentException("No HostExe in configuration");
540+
throw new ArgumentException("No DotNetDumpHost in configuration");
538541
}
539542
initialCommands.Add("setsymbolserver -directory %DEBUG_ROOT%");
540543

541544
arguments.Append(debuggerPath);
542545
arguments.Append(@" analyze %DUMP_NAME%");
543-
debuggerPath = config.HostExe;
546+
debuggerPath = config.DotNetDumpHost();
544547
break;
545548
}
546549

@@ -619,19 +622,19 @@ public async Task RunScript(string scriptRelativePath)
619622
}
620623
else if (line.StartsWith("IFDEF:"))
621624
{
622-
string define = line.Substring("IFDEF:".Length);
625+
string define = line.Substring("IFDEF:".Length).Trim();
623626
activeDefines.Add(define, true);
624627
isActiveDefineRegionEnabled = IsActiveDefineRegionEnabled(activeDefines, enabledDefines);
625628
}
626629
else if (line.StartsWith("!IFDEF:"))
627630
{
628-
string define = line.Substring("!IFDEF:".Length);
631+
string define = line.Substring("!IFDEF:".Length).Trim();
629632
activeDefines.Add(define, false);
630633
isActiveDefineRegionEnabled = IsActiveDefineRegionEnabled(activeDefines, enabledDefines);
631634
}
632635
else if (line.StartsWith("ENDIF:"))
633636
{
634-
string define = line.Substring("ENDIF:".Length);
637+
string define = line.Substring("ENDIF:".Length).Trim();
635638
if (!activeDefines.Last().Key.Equals(define))
636639
{
637640
throw new Exception("Mismatched IFDEF/ENDIF. IFDEF: " + activeDefines.Last().Key + " ENDIF: " + define);
@@ -718,10 +721,15 @@ public async Task LoadSosExtension()
718721
switch (Debugger)
719722
{
720723
case NativeDebugger.Cdb:
721-
commands.Add($".unload sos.dll");
724+
if (_config.IsDesktop)
725+
{
726+
// Force the desktop sos to be loaded and then unload it.
727+
commands.Add(".cordll -l");
728+
commands.Add(".unload sos");
729+
}
722730
commands.Add($".load {sosPath}");
723-
commands.Add(".lines");
724731
commands.Add(".reload");
732+
commands.Add(".chain");
725733
if (sosHostRuntime != null)
726734
{
727735
commands.Add($"!SetHostRuntime {sosHostRuntime}");
@@ -1133,6 +1141,11 @@ private HashSet<string> GetEnabledDefines()
11331141
{
11341142
defines.Add("ALPINE");
11351143
}
1144+
// This is a special "OR" of two conditions. Add this is easier than changing the parser to support "OR".
1145+
if (_config.IsNETCore || Debugger == NativeDebugger.DotNetDump)
1146+
{
1147+
defines.Add("NETCORE_OR_DOTNETDUMP");
1148+
}
11361149
return defines;
11371150
}
11381151

@@ -1345,6 +1358,12 @@ public static string GDBPath(this TestConfiguration config)
13451358
return TestConfiguration.MakeCanonicalPath(gdbPath);
13461359
}
13471360

1361+
public static string DotNetDumpHost(this TestConfiguration config)
1362+
{
1363+
string dotnetDumpHost = config.GetValue("DotNetDumpHost");
1364+
return TestConfiguration.MakeCanonicalPath(dotnetDumpHost);
1365+
}
1366+
13481367
public static string DotNetDumpPath(this TestConfiguration config)
13491368
{
13501369
string dotnetDumpPath = config.GetValue("DotNetDumpPath");

src/SOS/SOS.UnitTests/Scripts/DivZero.script

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Divide By Zero debugging scenario
2-
# 1) load the executable
2+
# 1) Load the executable
33
# 2) Run the executable and wait for it to crash
44
# 3) Take a dump of the executable.
55
# 4) Open the dump and compare the output

src/SOS/SOS.UnitTests/Scripts/GCTests.script

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@
33
#
44
# Commands Verified: GCWhere, GCRoot, DumpObj, DumpHeap, DumpStackObjects
55
#
6-
# 1) load sos
7-
# 2) run to the first debug break
8-
# 3) dump stack objects to get the address of GCWhere!temp
6+
# 1) Run to the first debug break
7+
# 2) Load sos
8+
# 3) Dump stack objects to get the address of GCWhere!temp
99
# 4) Run various commands on the address, verify Gen0
10-
# 5) run to the second debug break
10+
# 5) Run to the second debug break
1111
# 6) Run various commands on the address, verify Gen1
12-
# 7) run to the third debug break
12+
# 7) Run to the third debug break
1313
# 8) Run various commands on the address, verify Gen2
14-
# 9) run to the fourth debug break
14+
# 9) Run to the fourth debug break
1515
#10) Run various commands on the address, verify it is still Gen2
16-
#11) let the program run to completion
17-
18-
LOADSOS
16+
#11) Let the program run to completion
1917

2018
# Continue to the DebugBreak
2119
CONTINUE
2220
IFDEF:CDB
2321
VERIFY:Break instruction exception - code 80000003
2422
ENDIF:CDB
2523

24+
LOADSOS
25+
2626
SOSCOMMAND:DumpStackObjects
2727
VERIFY:<HEXVAL>\s+<HEXVAL>\s+System.IO.StringWriter\s+
2828

src/SOS/SOS.UnitTests/Scripts/NestedExceptionTest.script

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,28 @@
77
LOADSOS
88

99
# Verify that bpmd works
10-
IFDEF:PROJECTK
1110
IFDEF:LIVE
1211
!IFDEF:MAJOR_RUNTIME_VERSION_1
1312

13+
IFDEF:DESKTOP
14+
SOSCOMMAND:bpmd NestedExceptionTest.exe NestedExceptionTest.Program.Main
15+
ENDIF:DESKTOP
16+
!IFDEF:DESKTOP
1417
SOSCOMMAND:bpmd NestedExceptionTest.dll NestedExceptionTest.Program.Main
18+
ENDIF:DESKTOP
1519
CONTINUE
20+
21+
# Unloads desktop sos and reloads new SOS
22+
IFDEF:DESKTOP
23+
LOADSOS
24+
ENDIF:DESKTOP
25+
1626
SOSCOMMAND:ClrStack
1727
VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+NestedExceptionTest\.Program\.Main(\(.*\))?\s*
1828
VERIFY:\[.*[\\|/]Debuggees[\\|/](dotnet.+[\\|/])?[Nn]ested[Ee]xception[Tt]est[\\|/][Nn]ested[Ee]xception[Tt]est\.cs @ 8\s*\]\s*
1929

2030
ENDIF:MAJOR_RUNTIME_VERSION_1
2131
ENDIF:LIVE
22-
ENDIF:PROJECTK
2332

2433
CONTINUE
2534

@@ -80,10 +89,7 @@ VERIFY:InnerException:\s+System\.FormatException, Use !PrintException <HEXVAL> t
8089
VERIFY:StackTrace \(generated\):
8190
VERIFY:\s+SP\s+IP\s+Function\s+
8291
VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+[Nn]ested[Ee]xception[Tt]est.*!NestedExceptionTest\.Program\.Main(\(.*\))?\+0x<HEXVAL>\s*
83-
# Desktop sos has a bug that prevents the line number/source file info from being printed.
84-
IFDEF:PROJECTK
8592
VERIFY:\[.*[\\|/]Debuggees[\\|/](dotnet.+[\\|/])?[Nn]ested[Ee]xception[Tt]est[\\|/][Nn]ested[Ee]xception[Tt]est\.cs @ 8\s*\]\s*
86-
ENDIF:PROJECTK
8793
VERIFY:(StackTraceString: <none>\s+)?
8894
VERIFY:HResult:\s+80131509\s+
8995
VERIFY:There are nested exceptions on this thread. Run with -nested for details
@@ -109,7 +115,4 @@ SOSCOMMAND:ClrStack
109115
VERIFY:.*OS Thread Id:\s+0x<HEXVAL>\s+.*
110116
VERIFY:\s+Child\s+SP\s+IP\s+Call Site\s+
111117
VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+NestedExceptionTest\.Program\.Main(\(.*\))?\s*
112-
# Desktop sos has a bug that prevents the line number/source file info from being printed.
113-
IFDEF:PROJECTK
114118
VERIFY:\[.*[\\|/]Debuggees[\\|/](dotnet.+[\\|/])?[Nn]ested[Ee]xception[Tt]est[\\|/][Nn]ested[Ee]xception[Tt]est\.cs @ 8\s*\]\s*
115-
ENDIF:PROJECTK

0 commit comments

Comments
 (0)