Skip to content

Commit 55b92b8

Browse files
committed
Add procdump first-chance exception monitoring to CI test runs
This adds a procdump monitoring step before running component tests that: - Monitors for first-chance exceptions using procdump -e 1 flag - Attaches to the test process by name (CommunityToolkit.Tests.<multitarget>.exe) - Creates full memory dumps when first-chance exceptions occur - Only runs when ENABLE_DIAGNOSTICS is true and on uwp/wasdk builds This helps capture crash information for exceptions that may be caught and swallowed, providing better diagnostics for intermittent test failures.
1 parent 3e92976 commit 55b92b8

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

.github/workflows/build.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,13 @@ jobs:
158158
id: test-generator
159159
run: vstest.console.exe ./tooling/CommunityToolkit.Tooling.SampleGen.Tests/bin/Release/net8.0/CommunityToolkit.Tooling.SampleGen.Tests.dll /logger:"trx;LogFileName=SourceGenerators.trx"
160160

161+
- name: Start Procdump monitoring for first-chance exceptions
162+
if: ${{ (matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk') && env.ENABLE_DIAGNOSTICS == 'true' }}
163+
shell: pwsh
164+
run: |
165+
$procdumpArgs = @("-accepteula", "-e", "1", "-w", "CommunityToolkit.Tests.${{ matrix.multitarget }}.exe", "-ma", "${{ env.PROCDUMP_PATH }}")
166+
Start-Process -FilePath "${{ env.PROCDUMP_PATH }}/procdump64.exe" -ArgumentList $procdumpArgs -NoNewWindow
167+
161168
- name: Run component tests against ${{ matrix.multitarget }}
162169
if: ${{ matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk' }}
163170
id: test-platform
@@ -467,3 +474,4 @@ jobs:
467474
with:
468475
name: linux-logs
469476
path: ./**/*.*log
477+

0 commit comments

Comments
 (0)