RFR: 8347007: --strip-debug removes parameter names included with -parameters
Nir Lisker
nlisker at openjdk.org
Tue Sep 30 01:00:00 UTC 2025
On Mon, 29 Sep 2025 23:36:00 GMT, Henry Jen <henryjen at openjdk.org> wrote:
> Since parameters is an opt-in choice, it's more reasonable to consider that's desired information and make strip parameter names an opt-in choice as well.
>
> This PR changes the default behavior of --strip-debug to keep parameter names when it's available. Add opt-in mechanism,
> via the strip-java-debug-attributes plugin by using argument `--strip-java-debug-attributes=+parameter-names`.
>
> The --strip-debug option is a little bit odd, as it's a main option as well as a plugin option to enable the DefaultStripDebugPlugin, which strip native debug information on platform support the feature, and strip java debug information. In this PR, we chose to support only one mechanism to enable strip parameter names, so we would disable the embed StripJavaDebugAttributesPlugin when StripJavaDebugAttributesPlugin is enabled.
>
> The StripParameterNamesTest illustrate and verify parameter names use cases, mainly focus on argument processing and the parameter names. We didn't verify the regular debug info as that's covered by existing test.
Is there a documentation change needed on the tool's doc page?
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/TaskHelper.java line 446:
> 444: if (!Utils.isDisabled(plugin)) {
> 445: if (plugin instanceof DefaultStripDebugPlugin) {
> 446: defaultStripDebugPlugin = (DefaultStripDebugPlugin) plugin;
Suggestion:
if (plugin instanceof DefaultStripDebugPlugin plugin) {
defaultStripDebugPlugin = plugin;
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/DefaultStripDebugPlugin.java line 64:
> 62: }
> 63:
> 64: public void enableJavaStripPlugin(boolean enableJavaStripPlugin) {
This method name specifically implies enabling. Maybe "setEnabled..."?
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/StripJavaDebugAttributesPlugin.java line 88:
> 86: PluginsResourceBundle.getMessage("err.illegal.argument", rawArg));
> 87: }
> 88: }
This could be an expression switch that does nothing on `null` or `""` and throws on `default`.
-------------
PR Review: https://git.openjdk.org/jdk/pull/27566#pullrequestreview-3282252887
PR Review Comment: https://git.openjdk.org/jdk/pull/27566#discussion_r2389585558
PR Review Comment: https://git.openjdk.org/jdk/pull/27566#discussion_r2389587641
PR Review Comment: https://git.openjdk.org/jdk/pull/27566#discussion_r2389591689
More information about the core-libs-dev
mailing list