-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Add MethodInvocation trace for overload tracing #21320
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
Conversation
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
a37cc7e
to
b041aa8
Compare
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
b041aa8
to
07d6f4e
Compare
07d6f4e
to
25b209a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks good and would be a great help in script debugging & would be good to get this merged in!
The @PowerShell/wg-powershell-cmdlets discussed this, we are in favor of adding more diagnosability to PowerShell, but defer to the Engine WG to review. |
25b209a
to
2e67e70
Compare
2e67e70
to
357fb02
Compare
WG-Engine reviewed this PR, and we endorse the proposed new trace source. |
Adds a new trace source called MethodInvocation which can be used to trace what .NET methods PowerShell invokes. This is useful for both seeing what .NET methods the code is calling but also for seeing what overload PowerShell has selected based on the arguments provided. This only applies to .NET methods, ETS members are not covered by this trace source but could potentially be added in the future.
357fb02
to
d1facfe
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thank you, @jborean93!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Thanks for the review and merge, I've opened a PR to document this new feature MicrosoftDocs/PowerShell-Docs#12226. Up to the docs gods to make it prettier and more presentable. |
PR Summary
Adds a new trace source called MethodInvocation which can be used to trace what .NET methods PowerShell invokes. This is useful for both seeing what .NET methods the code is calling but also for seeing what overload PowerShell has selected based on the arguments provided.
This only applies to .NET methods, ETS members are not covered by this trace source but could potentially be added in the future.
PR Context
To be able to debug PowerShell behaviour like why
" ".Split(" ")
has changed across .NET versions. Also provides an analogue ofParameterBinding
but for .NET methods.For example
Shows
PR Checklist
.h
,.cpp
,.cs
,.ps1
and.psm1
files have the correct copyright headerWIP:
or[ WIP ]
to the beginning of the title (theWIP
bot will keep its status check atPending
while the prefix is present) and remove the prefix when the PR is ready.(which runs in a different PS Host).