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

Open
mattwarren opened this Issue Nov 19, 2015 · 1 comment

Comments

Projects
None yet
2 participants
@mattwarren

mattwarren commented Nov 19, 2015

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

This comment has been minimized.

Show comment
Hide comment
@leculver

leculver Dec 3, 2015

Contributor

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.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment