From 1afc08fea8c16e039113f91d48a66a4af28fd87c Mon Sep 17 00:00:00 2001 From: Alvaro Sanchez-Leon Date: Fri, 9 Dec 2016 12:02:37 -0500 Subject: [PATCH] Bug 507336 - Dynamic Printf parameters format may not be clear The Properties dialog displayed for a Dynamic printf breakpoint display a "printf (" field, however the end parenthesis is not added and not expected as part of the parameter list as the ending parenthesis is added internally. If the user adds it to complete the opening parenthesis the printf does not work. This update adds a validation to this field so if the user adds a final parenthesis, the dialog will display an error message and the OK button will be disabled. Change-Id: Ib25c5a11176c6f92c7367246483be0f703e145bd --- dsf-gdb/org.eclipse.cdt.dsf.gdb/META-INF/MANIFEST.MF | 2 +- dsf-gdb/org.eclipse.cdt.dsf.gdb/pom.xml | 2 +- .../cdt/dsf/gdb/breakpoints/GDBDynamicPrintfUtils.java | 5 +++++ .../src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.java | 4 ++++ .../org/eclipse/cdt/dsf/gdb/breakpoints/Messages.properties | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/META-INF/MANIFEST.MF b/dsf-gdb/org.eclipse.cdt.dsf.gdb/META-INF/MANIFEST.MF index 29c2c3878ef..37857657c84 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/META-INF/MANIFEST.MF +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.cdt.dsf.gdb;singleton:=true -Bundle-Version: 5.2.0.qualifier +Bundle-Version: 5.3.0.qualifier Bundle-Activator: org.eclipse.cdt.dsf.gdb.internal.GdbPlugin Bundle-Localization: plugin Require-Bundle: org.eclipse.core.runtime, diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/pom.xml b/dsf-gdb/org.eclipse.cdt.dsf.gdb/pom.xml index d624016c238..76c501dfd95 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/pom.xml +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/pom.xml @@ -11,7 +11,7 @@ ../../pom.xml - 5.2.0-SNAPSHOT + 5.3.0-SNAPSHOT org.eclipse.cdt.dsf.gdb eclipse-plugin diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/GDBDynamicPrintfUtils.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/GDBDynamicPrintfUtils.java index 293b6a1e76a..7fca74ef82a 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/GDBDynamicPrintfUtils.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/GDBDynamicPrintfUtils.java @@ -49,6 +49,11 @@ public class GDBDynamicPrintfUtils { return; } + if (str.charAt(str.length() - 1) == ')') { + fErrorMessage = Messages.DynamicPrintf_Printf_not_expecting_a_closing_parenthesis; + return; + } + // Now go through the string and look for two things: // 1- count the number of % (but ignore any %%) // 2- find the closing double-quote (but ignore any \") diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.java index 54aa24e3414..fe847a9a3c0 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.java @@ -17,6 +17,10 @@ public class Messages extends NLS { public static String DynamicPrintf_Invalid_string; public static String DynamicPrintf_Printf_must_start_with_quote; public static String DynamicPrintf_Printf_missing_closing_quote; + /** + * @since 5.3 + */ + public static String DynamicPrintf_Printf_not_expecting_a_closing_parenthesis; public static String DynamicPrintf_Missing_comma; public static String DynamicPrintf_Empty_arg; public static String DynamicPrintf_Extra_arg; diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.properties b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.properties index c4ed7a08937..7af8a4d9f79 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.properties +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/Messages.properties @@ -12,6 +12,7 @@ DynamicPrintf_Invalid_string=Invalid printf string DynamicPrintf_Printf_must_start_with_quote=Printf string must start with a " DynamicPrintf_Printf_missing_closing_quote=Printf string is missing its closing " +DynamicPrintf_Printf_not_expecting_a_closing_parenthesis=Specify Printf parameters without a closing parenthesis DynamicPrintf_Missing_comma=Printf string can only have a , after its closing " DynamicPrintf_Empty_arg=Printf string should not have empty arguments DynamicPrintf_Extra_arg={0} extra arguments in printf specification