Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fix few issues with Blame collector.
The native .NET Crash monitor still don't seem to catch FailFast, but there is internal option
VSTEST_DUMP_FORCEPROCDUMP=1
that forces the use of ProcDump even where the built it net dump would be used.This now also applies the hang dumps, because on some systems the PInvoke I do to not need ProcDump throws AccessViolationException, so this is a way to force that to use ProcDump.
There is also
VSTEST_DUMP_FORCENETDUMP=1
internal option which is forcing the net dumper to be used on Windows so we can test it a bit better.I also added
VSTEST_DUMP_PROCDUMPARGUMENTS
andVSTEST_DUMP_PROCDUMPADDITIONALARGUMENTS
internal option to fully or partially override what arguments procdump will use, because I found it quite useful when debugging crashes. And there is sadly no way to collect both "managed" and "native" dumps at the same time. So when I can't really see the crash I need to change how proc dump runs a lot.Not sure how to fix this properly without relying on those internal env variables to set the dumpers. Maybe I could try looking if procdump can be found when on windows and try using that, otherwise try the other dumpers based on the platform.
Related issue
Workaround for #3005 by using
VSTEST_DUMP_FORCEPROCDUMP=1
Workaround for dotnet/sdk#14578 (comment) also by using
VSTEST_DUMP_FORCEPROCDUMP=1
Easiest way to install procdump is by using this task: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/vstest?view=azure-devops
Easiest way to deploy latest version of TestPlatform is by using this task: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/vstest-platform-tool-installer?view=azure-devops