ikvmnet / ikvm

A Java Virtual Machine and Bytecode-to-IL Converter for .NET
Other
1.15k stars 109 forks source link

Implement Thread.getAllStackTraces() for CoreCLR #536

Open wasabii opened 2 weeks ago

wasabii commented 2 weeks ago

.NET Framework supported new StackTrace(Thread) to get the stack of a different thread. During the initial Core upgrade somebody removed all of this (working) code on Framework, and replaced it with broken code for Core (that returned the wrong array size). That's since been "fixed" in that the Framework code has been restored on Framework, but only empty stack traces are left on CoreCLR.

We could fix this on Core by using the diagnostics event pipe similar to how dotnet-stack works.

wasabii commented 2 weeks ago

Microsoft.Diagnostics.NETCore.Client is an implementation of a client for the event pipes. Good starting point. I'm unsure if this is a dependency appropriate for the core of IKVM, however. Need to evaluate how large/intrusive it is.