Index: gdb/jv-varobj.c |
diff --git a/gdb/jv-varobj.c b/gdb/jv-varobj.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e70aa28d422493889672046cf16f89c4ec53ec4b |
--- /dev/null |
+++ b/gdb/jv-varobj.c |
@@ -0,0 +1,105 @@ |
+/* varobj support for Java. |
+ |
+ Copyright (C) 1999-2013 Free Software Foundation, Inc. |
+ |
+ This program is free software; you can redistribute it and/or modify |
+ it under the terms of the GNU General Public License as published by |
+ the Free Software Foundation; either version 3 of the License, or |
+ (at your option) any later version. |
+ |
+ This program is distributed in the hope that it will be useful, |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ GNU General Public License for more details. |
+ |
+ You should have received a copy of the GNU General Public License |
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
+ |
+#include "defs.h" |
+#include "varobj.h" |
+ |
+/* Java */ |
+ |
+static int |
+java_number_of_children (struct varobj *var) |
+{ |
+ return cplus_varobj_ops.number_of_children (var); |
+} |
+ |
+static char * |
+java_name_of_variable (struct varobj *parent) |
+{ |
+ char *p, *name; |
+ |
+ name = cplus_varobj_ops.name_of_variable (parent); |
+ /* If the name has "-" in it, it is because we |
+ needed to escape periods in the name... */ |
+ p = name; |
+ |
+ while (*p != '\000') |
+ { |
+ if (*p == '-') |
+ *p = '.'; |
+ p++; |
+ } |
+ |
+ return name; |
+} |
+ |
+static char * |
+java_name_of_child (struct varobj *parent, int index) |
+{ |
+ char *name, *p; |
+ |
+ name = cplus_varobj_ops.name_of_child (parent, index); |
+ /* Escape any periods in the name... */ |
+ p = name; |
+ |
+ while (*p != '\000') |
+ { |
+ if (*p == '.') |
+ *p = '-'; |
+ p++; |
+ } |
+ |
+ return name; |
+} |
+ |
+static char * |
+java_path_expr_of_child (struct varobj *child) |
+{ |
+ return NULL; |
+} |
+ |
+static struct value * |
+java_value_of_child (struct varobj *parent, int index) |
+{ |
+ return cplus_varobj_ops.value_of_child (parent, index); |
+} |
+ |
+static struct type * |
+java_type_of_child (struct varobj *parent, int index) |
+{ |
+ return cplus_varobj_ops.type_of_child (parent, index); |
+} |
+ |
+static char * |
+java_value_of_variable (struct varobj *var, enum varobj_display_formats format) |
+{ |
+ return cplus_varobj_ops.value_of_variable (var, format); |
+} |
+ |
+/* varobj operations for java. */ |
+ |
+const struct lang_varobj_ops java_varobj_ops = |
+{ |
+ java_number_of_children, |
+ java_name_of_variable, |
+ java_name_of_child, |
+ java_path_expr_of_child, |
+ java_value_of_child, |
+ java_type_of_child, |
+ java_value_of_variable, |
+ varobj_default_value_is_changeable_p, |
+ NULL /* value_has_mutated */ |
+}; |