Skip to content

Commit 076d627

Browse files
committed
update to use minidump
1 parent dadfc6b commit 076d627

File tree

5 files changed

+42
-6
lines changed

5 files changed

+42
-6
lines changed

src/SOS/SOS.UnitTests/Debuggees/TriageDumpLocalVarLookup/Program.cs renamed to src/SOS/SOS.UnitTests/Debuggees/MiniDumpLocalVarLookup/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System;
55
using System.Diagnostics;
66

7-
namespace TriageDumpLocalVarLookup;
7+
namespace MiniDumpLocalVarLookup;
88

99
internal class Program
1010
{

src/SOS/SOS.UnitTests/SOS.cs

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ internal static async Task RunTest(
140140
bool testLive = true,
141141
bool testDump = true,
142142
bool testTriage = false,
143+
bool testMini = false,
143144
SOSRunner.DumpGenerator dumpGenerator = SOSRunner.DumpGenerator.CreateDump)
144145
{
145146
await RunTest(scriptName,
@@ -172,6 +173,21 @@ await RunTest(scriptName,
172173
},
173174
output);
174175
}
176+
if (testMini && !config.PublishSingleFile)
177+
{
178+
await RunTest(scriptName,
179+
new SOSRunner.TestInformation
180+
{
181+
TestConfiguration = config,
182+
TestName = testName,
183+
TestLive = false,
184+
TestDump = testDump,
185+
DebuggeeName = debuggeeName,
186+
DumpType = SOSRunner.DumpType.Mini,
187+
DumpGenerator = dumpGenerator,
188+
},
189+
output);
190+
}
175191
}
176192

177193
internal static void TestCrashReport(string dumpName, SOSRunner.TestInformation information)
@@ -238,18 +254,28 @@ public SOS(ITestOutputHelper output)
238254
public static IEnumerable<object[]> Configurations => SOSTestHelpers.GetConfigurations("TestName", value: null);
239255

240256
[SkippableTheory, MemberData(nameof(SOSTestHelpers.GetNetCoreConfigurations), MemberType = typeof(SOSTestHelpers))]
241-
public async Task TriageDumpLocalVarLookup(TestConfiguration config)
257+
public async Task MiniDumpLocalVarLookup(TestConfiguration config)
242258
{
259+
if (OS.Kind != OSKind.Windows)
260+
{
261+
throw new SkipTestException("Test only supports CDB and therefore only runs on Windows");
262+
}
263+
264+
if (config.PublishSingleFile)
265+
{
266+
throw new SkipTestException("Single file does not support mini dumps");
267+
}
268+
243269
// The default dumpGenerator, CreateDump, only supports taking dumps at exceptions.
244270
// DotnetDump could support taking a dump at a breakpoint, but this SOS test framework doesn't currently support this operation.
245271
// Therefore we use the NativeDebugger to take a dump at the DebugBreak() call in the debuggee.
246272
await SOSTestHelpers.RunTest(
247273
config,
248-
debuggeeName: "TriageDumpLocalVarLookup",
249-
scriptName: "TriageDumpLocalVarLookup.script",
274+
debuggeeName: "MiniDumpLocalVarLookup",
275+
scriptName: "MiniDumpLocalVarLookup.script",
250276
Output,
251-
testName: "SOS.TriageDumpLocalVarLookup",
252-
testTriage: true,
277+
testName: "SOS.MiniDumpLocalVarLookup",
278+
testMini: true,
253279
dumpGenerator: SOSRunner.DumpGenerator.NativeDebugger);
254280
}
255281

src/SOS/SOS.UnitTests/SOSRunner.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public enum DumpGenerator
3434
public enum DumpType
3535
{
3636
Triage,
37+
Mini,
3738
Heap,
3839
Full
3940
}
@@ -235,6 +236,9 @@ public static async Task<string> CreateDump(TestInformation information)
235236
await runner.ContinueExecution();
236237
switch (information.DumpType)
237238
{
239+
case DumpType.Mini:
240+
command = ".dump /o /m %DUMP_NAME%";
241+
break;
238242
case DumpType.Heap:
239243
command = ".dump /o /mw %DUMP_NAME%";
240244
break;
@@ -349,6 +353,9 @@ public static async Task<string> CreateDump(TestInformation information)
349353
}
350354
switch (dumpType)
351355
{
356+
case DumpType.Mini:
357+
processRunner.WithRuntimeConfiguration("DbgMiniDumpType", "1");
358+
break;
352359
case DumpType.Heap:
353360
processRunner.WithRuntimeConfiguration("DbgMiniDumpType", "2");
354361
break;
@@ -1498,6 +1505,9 @@ private HashSet<string> GetEnabledDefines()
14981505
{
14991506
switch (_dumpType.Value)
15001507
{
1508+
case DumpType.Mini:
1509+
defines.Add("MINI_DUMP");
1510+
break;
15011511
case DumpType.Triage:
15021512
defines.Add("TRIAGE_DUMP");
15031513
break;

0 commit comments

Comments
 (0)