Description
Issue
The assertion detecting logic in PMIDriver (
Lines 214 to 267 in 945715f
Additionally, due to other changes in the JIT, assertions are never logged in the default scenario.
Repro
- Clone dotnet/runtime
- Build the repo in all required configurations
- Clone dotnet/jitutils
- Build the repo using
.\bootstrap.cmd
- In the dotnet/runtime root, run
jit-diff.bat diff --diff --pmi
Observe that the command fails due to dotnet/runtime#51728. However, System.Private.Corelib.err
reports: General error, no assert seen.
Analysis
assertAbort
(https://github.com/dotnet/runtime/blob/main/src/coreclr/jit/error.cpp#L277-L323) currently fails to log anything because COMPlus_JitFuncInfoLogFile
is not set and because the default CoreCLR.dll
(VM) for the PMI diffs is release
which means CEEInfo::doAssert
does not actually print anything: https://github.com/dotnet/runtime/blob/main/src/coreclr/vm/jitinterface.cpp#L10897-L10925
Additionally, even if the assertions are printed, they currently resemble:
Encoding:GetCharsWithFallback(long,int,long,int,int,int):int:this - Assertion failed (C:\Users\tagoo\Source\repos\runtime_base\src\coreclr\jit\emitxarch.cpp:11739 - ((regMask & emitThisGCrefRegs) && (ins == INS_add)) || ((regMask & emitThisByrefRegs) && (ins == INS_add || ins == INS_sub))) during Emit code
While the PMIDriver is currently looking for ]): Assertion failed '
and Assert failure(PID
, neither of which are used by this failure path.