Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a list of which SOS commands can be implemented in ClrMD #33

Closed
mattwarren opened this issue Nov 19, 2015 · 3 comments
Closed

Create a list of which SOS commands can be implemented in ClrMD #33

mattwarren opened this issue Nov 19, 2015 · 3 comments

Comments

@mattwarren
Copy link

It would be nice to have a list/table that shows which SOS Commands can be implemented directly or indirectly with ClrMD. Maybe even include code sample directly or have links to a sample in the source.

Then it would be easy for people to understand what ClrMD can or cannot do.

@leculver
Copy link
Contributor

leculver commented Dec 3, 2015

This is a very reasonable request, but one that is a bit hard to come up with in practice.

My goal starting this project ages ago was that ClrMD should be able to do everything that SOS can do. (Well, more specifically it would give you all the building blocks to build what SOS can do...which is a big distinction.) However there are some things that are missing that require a large amount of work and I simply haven't gotten around to them.

Off the top of my head things that won't work and I plan to eventually support: DumpIL (can't find the address of the IL itself, you would have to do the disassembly). DumpLog (I eventually plan to expose an interface to get at stress logs, though I doubt external people will care). SyncBlk.

I don't plan to support "!u -gcinfo" or "!gcinfo" for practical reasons...that's not an interface that's wrapped, SOS actually carries a gcinfo parser...and it's likely too much to implement in ClrMD.

The rest of the stuff I see in sos are either mostly complete (missing a few things that SOS could output that you can't get from ClrMD) that I could give you if there was a request to. I also see things in SOS that are too internal to be relevant (CLR developers would need them, you can't implement them with ClrMD, but someone debugging managed code shouldn't need...) In any case, I should formally document what I'm saying here...but I'm not sure when I'll have time to get around to it.

If I could point out one thing though: If there's something you think is useful but you can't get with ClrMD, please raise a feature request here. I tend to implement what people ask for when I have time to work on ClrMD. Please don't assume that if something can be done in SOS but not in ClrMD that it was planned that way...usually it's just a matter of me not implementing it yet and no one has asked for it.

@leculver
Copy link
Contributor

With the SOSDac interface you can now implement most SOS features "out of the box", and for things I haven't provided a wrapper for you are welcome to wrap and use via ClrMD. I don't intend to try to fully wrap the ISOSDac fully in one pass, but I'm happy to accept PRs that build the pieces you need.

@mattwarren
Copy link
Author

@leculver It's great to see all the recent work being done on ClrMD, I think it's a great library that's enabled many other tools to be built, so great job!!

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

No branches or pull requests

2 participants