microsoft / clrmd

Microsoft.Diagnostics.Runtime is a set of APIs for introspecting processes and dumps.
MIT License
1.05k stars 255 forks source link

Cross-Platform Analysis? #1229

Closed daddycocoaman closed 4 months ago

daddycocoaman commented 11 months ago

Hi,

Thanks for creating and maintaining ClrMD. It's been pretty useful for me in a lot of cases.

I know that ClrMD is cross platform, but I was wondering if it's possible to analyze memory dumps from a different OS (like analyzing Windows Minidumps on Linux). Or is that impossible due to having to load the specific native library which won't be able to list the ClrVersion from another OS? Thanks for any info or suggestions.

leculver commented 4 months ago

Or is that impossible due to having to load the specific native library which won't be able to list the ClrVersion from another OS?

ClrMD uses a native library for debugging. The .Net runtime builds a few of these debugging libraries as cross-OS or cross-architecture, but it doesn't fully build the entire matrix. Debugging Windows dumps on Linux, for example, is not supported because they do not build that particular configuration. Debugging Linux dumps on Windows, is available because they do build that one.

daddycocoaman commented 1 month ago

@leculver Thanks for the response, and I didn't want to reopen this issue, but can you point me to where that matrix is defined for these particular libraries? I haven't been able to locate them so far but maybe I'm misreading all the cross-platform build scripts I see in the runtime repo.

leculver commented 1 month ago

@tommcdon Do you remember where in the docs or github issues we define the matrix of supported debugger architecture/target architecture combos?

tommcdon commented 1 month ago

We have the following GH issue tracking the current support matrix: https://github.com/dotnet/runtime/issues/77433

daddycocoaman commented 1 month ago

@tommcdon @leculver Thanks!