Skip to content

deps: Update ClrMD version to 4.x#3081

Draft
filzrev wants to merge 1 commit intodotnet:masterfrom
filzrev:deps-update-clrmd-version
Draft

deps: Update ClrMD version to 4.x#3081
filzrev wants to merge 1 commit intodotnet:masterfrom
filzrev:deps-update-clrmd-version

Conversation

@filzrev
Copy link
Copy Markdown
Contributor

@filzrev filzrev commented Apr 11, 2026

1. Update ClrMD version to 4.x
Currently v4.x is release as beta .
It'll expected to be released soon. (https://github.com/microsoft/clrmd/issues/1376)

2. Update existing code based on migration guide
https://github.com/microsoft/clrmd/blob/main/doc/Migrating4.md

3. Remove temporary workaround code for Linux
Linux crashes when using AttachToProcess in the same process issue seems be resolved on latest version.
microsoft/clrmd#1282

4. Remove temporary workaround code for macOS
ClrMD v4 add CreateSnapshotAndAttach support for macos.
https://github.com/microsoft/clrmd/blob/main/doc/Migrating4.md#macos-createsnapshotandattach-support

TODO:

Enable Disassembler tests for Windows+Arm64
Almost test cases works on Windows+arm64 after migrated to ClrMD 4,x
microsoft/clrmd#1365

It need dynamically skip test cases on following conditions.

  1. Running on Windows+arm+.NET Framework
  2. Using InProcessToolchain

Because following exception thrown.

// ! InProcessEmitExecutor, exception: System.DllNotFoundException: Unable to load DLL 'capstone': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at Gee.External.Capstone.NativeCapstoneImport.CreateDisassembler(DisassembleArchitecture disassembleArchitecture, NativeDisassembleMode disassembleMode, IntPtr& pDisassembler)
   at Gee.External.Capstone.NativeCapstone.CreateDisassembler(DisassembleArchitecture disassembleArchitecture, NativeDisassembleMode disassembleMode)
   at Gee.External.Capstone.CapstoneDisassembler`8..ctor(DisassembleArchitecture disassembleArchitecture, TDisassembleMode disassembleMode)
   at BenchmarkDotNet.Disassemblers.Arm64Disassembler.<Decode>d__2.MoveNext() in /_/src/BenchmarkDotNet/Disassemblers/Arm64Disassembler.cs:line 199
   at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
   at BenchmarkDotNet.Disassemblers.ClrMdDisassembler.DisassembleMethod(MethodInfo methodInfo, State state, ClrMdArgs args, DisassemblySyntax syntax, SourceCodeProvider sourceCodeProvider) in /_/src/BenchmarkDotNet/Disassemblers/ClrMdDisassembler.cs:line 199
   at BenchmarkDotNet.Disassemblers.ClrMdDisassembler.Disassemble(ClrMdArgs args, State state) in /_/src/BenchmarkDotNet/Disassemblers/ClrMdDisassembler.cs:line 161
   at BenchmarkDotNet.Disassemblers.ClrMdDisassembler.AttachAndDisassemble(ClrMdArgs args) in /_/src/BenchmarkDotNet/Disassemblers/ClrMdDisassembler.cs:line 101
   at BenchmarkDotNet.Diagnosers.DisassemblyDiagnoser.<HandleAsync>d__23.MoveNext() in /_/src/BenchmarkDotNet/Disassemblers/DisassemblyDiagnoser.cs:line 98
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at BenchmarkDotNet.Diagnosers.CompositeDiagnoser.<HandleAsync>d__9.MoveNext() in /_/src/BenchmarkDotNet/Diagnosers/CompositeDiagnoser.cs:line 39
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at BenchmarkDotNet.Toolchains.InProcess.Emit.InProcessEmitRunner.<Run>d__0.MoveNext() in /_/src/BenchmarkDotNet/Toolchains/InProcess/Emit/InProcessEmitRunner.cs:line 52
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at BenchmarkDotNet.Toolchains.InProcess.Emit.InProcessEmitExecutor.<ExecuteCore>d__3.MoveNext() in /_/src/BenchmarkDotNet/Toolchains/InProcess/Emit/InProcessEmitExecutor.cs:line 78

@filzrev filzrev force-pushed the deps-update-clrmd-version branch from 78d1edb to b9608c9 Compare April 11, 2026 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant