-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8367949: JFR: MethodTrace double-counts methods that catch their own exceptions #28947
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
base: master
Are you sure you want to change the base?
Conversation
|
👋 Welcome back egahlin! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
| byte[] generated = classFile.build(classModel.thisClass().asSymbol(), classBuilder -> { | ||
| for (var ce : classModel) { | ||
| if (modifyClassElement(classBuilder, ce)) { | ||
| if (modifyClassElement(classModel,classBuilder, ce)) { |
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.
| if (modifyClassElement(classModel,classBuilder, ce)) { | |
| if (modifyClassElement(classModel, classBuilder, ce)) { |
| Modification m = tm.modification(); | ||
| if (m.tracing() || m.timing()) { | ||
| return modifyMethod(classBuilder, mm, tm); | ||
| return modifyMethod(classModel,classBuilder, mm, tm); |
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.
| return modifyMethod(classModel,classBuilder, mm, tm); | |
| return modifyMethod(classModel, classBuilder, mm, tm); |
Could I have a review of a PR that changes how the instrumentation of the MethodTrace and MethodTiming events is implemented, so they handle exceptions in a better way?
For constructors, the current implementation is still used in certain corner cases. A proper implementation would require data-flow analysis, but for all practical purposes this code should work fine.
Testing: jdk/jdk/jfr
Thanks
Erik
Progress
Issue
Reviewers without OpenJDK IDs
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/28947/head:pull/28947$ git checkout pull/28947Update a local copy of the PR:
$ git checkout pull/28947$ git pull https://git.openjdk.org/jdk.git pull/28947/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 28947View PR using the GUI difftool:
$ git pr show -t 28947Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/28947.diff
Using Webrev
Link to Webrev Comment