Safe debug agent. Part 2. #4565
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The previous changes to the debug agent provided a more detailed error message when agent initialization fails.
Though the question still remains: should we log an error and continue execution, or should we always throw an error?
For users who apply the agent manually and expect it to be attached, throwing an error that indicates the agent failed to load would be more helpful. But for the debugger users who didn't apply the agent manually (the debugger did it for them), a thrown exception is confusing —they have no idea where to add stdlib to the classpath or how to remove the javaagent, for them it just means that the debugger is broken.
To address both cases, I propose adding a special argument that the debugger can set to log an error and proceed with execution, while by default, an error will be thrown for manual agent users.