Unable to analyze CHPE, ARM64EC, ARM64X binaries (System.InvalidOperationException: Unknown machine type!)
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- csharp
- Domain
- devtools, operating-systems
Research direction
Start at src/SizeBench.AnalysisEngine/DIAInterop/DIAAdapter.cs line 176, where the unknown machine type exception is raised, then trace initialization through src/SizeBench.AnalysisEngine/Session.cs lines 117 and 164. Reproduce the failure with an ARM64EC binary and verify that SizeBench can load ARM64EC, CHPE, and ARM64X binaries without this exception.
Written by the indexing model from the issue text.
Description
Describe the bug
In trying to use SizeBench against an ARM64EC binary, I hit the following exception:
Exception information:
System.InvalidOperationException: Unknown machine type!
HRESULT: 0x80131509
at SizeBench.AnalysisEngine.DIAInterop.DIAAdapter..ctor(Session session, String pdbPath) in /_/src/SizeBench.AnalysisEngine/DIAInterop/DIAAdapter.cs:line 176
at SizeBench.AnalysisEngine.Session.InitializeDIAThread() in /_/src/SizeBench.AnalysisEngine/Session.cs:line 164
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
at SizeBench.AnalysisEngine.Session.Create(String binaryPath, String pdbPath, SessionOptions options, ILogger sessionLogger) in /_/src/SizeBench.AnalysisEngine/Session.cs:line 117
at SizeBench.AnalysisEngine.Session.Create(String binaryPath, String pdbPath, SessionOptions options, ILogger sessionLogger) in /_/src/SizeBench.AnalysisEngine/Session.cs:line 124
at SizeBench.GUI.SessionFactory.CreateSession(String binaryPath, String pdbPath, SessionOptions sessionOptions, ILogger logger) in D:\a\1\s\src\SizeBench.GUI\SessionFactory.cs:line 24
at SizeBench.GUI.ViewModels.MainWindowViewModel.<>c__DisplayClass51_0.<<OpenSessionFromBinaryPathAndPDBPath>b__0>d.MoveNext() in D:\a\1\s\src\SizeBench.GUI\MainWindowViewModel.cs:line 379
What you are doing
Trying to load an ARM64EC compiled binary
Expected behavior
SizeBench is able to load a ARM64EC binary.
Environment Details
Processor Count: 24
Runtime Version: 8.0.10
Framework Description: .NET 8.0.10
CoreCLR Build: 8.0.10
CoreCLR Hash: 81cabf2857a01351e5ab578947c7403a5b128ad1
CoreFX Build: 8.0.10
CoreFX Hash: 81cabf2857a01351e5ab578947c7403a5b128ad1
OS Architecture: X64
Process Architecture: X64
Has Shutdown Started: False
Current Directory: C:\WINDOWS\system32
Locale: en-US
UI Locale: en-US
Process Information
Process Name: SizeBench.GUI
Application Version: 2.2410.3101.0
Working Set: 193,064,960
Command Line: "C:\Program Files\WindowsApps\MicrosoftCorporationII.SizeBench_2.2410.3101.0_x64__8wekyb3d8bbwe\SizeBench.GUI\SizeBench.GUI.dll"
64-bit Process: True
- Dominant language
- C#
- Stars
- 175
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/SizeBench
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Hang Open
Difficulty 4/5 3-5 days Newbie friendliness 25/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
Diffing two binaries should have side-by-side disassembly when drilled into a specific function Open
Difficulty 4/5 3-5 days Newbie friendliness 52/100
All issues in microsoft/SizeBench
Similar issues
-
type/automation type/tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
t/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
ci-failure-cause test-failure
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
area:auth FE mvp P3
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
klasolsson81/jobbliggaren#1788 ·