[External] : Re: JEP 411, removal of finalizers, a path forward.
Peter Firmstone
peter.firmstone at zeus.net.au
Tue Aug 3 09:47:32 UTC 2021
Wow, thanks Andrew,
There's certainly some complexity there, I appreciate your guidance.
Regards,
Peter.
On 3/08/2021 7:11 pm, Andrew Dinn wrote:
> On 03/08/2021 02:30, Peter Firmstone wrote:
>> Just curious, when using Agents, what are the recommendations for
>> line numbers in code, for exceptions etc, how are these affected when
>> instrumenting?
>
> For Byteman I use ASM to inject bytecode sequences into methods
> without any (significant) modification to existing bytecodes. ASM
> successfully adjusts line number info to allow for the injected code
> without the need for my agent to take any action.
>
> I also add extra exception handling around injected regions and
> propagate exceptions through enclosing regions to an outer handler.
> ASM updates the exception table according to where the method visitor
> notifies new try and catch region boundaries while retaining the
> regions determined by existing notifications.
>
> ASM provides mechanism for more complex cases. If you are rewriting
> existing bytecodes or exception regions then you can use the ASM
> visitor pattern to process and then renotify both line numbers and try
> catch boundaries as you visit the bytecode stream. Of course, the
> logic of how to do that can be as complex as (or more so than) the
> rewrite logic.
>
> n.b. Remapping exception regions at load time is tricky for two
> reasons. Firstly, you cannot afford to load exception classes to
> investigate the exception class hierarchy without losing the
> opportunity to transform the exception class's bytecode. So, you have
> to identify exception shadowing by parsing the bytecode as a resource
> to establish exception super relationships. Secondly, if you tinker
> with or inject extra try regions you need to a) ensure they are
> properly nested inside containing try regions b) make sure that new
> exception exit paths out of synchronized regions include monitorexits.
>
> regards,
>
>
> Andrew Dinn
> -----------
> Red Hat Distinguished Engineer
> Red Hat UK Ltd
> Registered in England and Wales under Company Registration No. 03798903
> Directors: Michael Cunningham, Michael ("Mike") O'Neill
>
More information about the security-dev
mailing list