Index: generic/gdbtk-varobj.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-varobj.c,v retrieving revision 1.25 diff -u -p -r1.25 gdbtk-varobj.c --- generic/gdbtk-varobj.c 17 Sep 2009 07:00:48 -0000 1.25 +++ generic/gdbtk-varobj.c 29 Apr 2010 20:57:25 -0000 @@ -1,5 +1,6 @@ /* Variable user interface layer for GDB, the GNU debugger. - Copyright (C) 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2002, 2008, 2010 + Free Software Foundation, Inc. This file is part of GDB. @@ -22,6 +23,7 @@ #include "value.h" #include "gdb_string.h" #include "varobj.h" +#include "exceptions.h" #include #include "gdbtk.h" @@ -574,9 +576,16 @@ variable_value (Tcl_Interp *interp, int if (varobj_get_attributes (var) & 0x00000001 /* Editable? */ ) { char *s; + int ok = 0; + struct gdb_exception e; s = Tcl_GetStringFromObj (objv[2], NULL); - if (!varobj_set_value (var, s)) + TRY_CATCH (e, RETURN_MASK_ERROR) + { + ok = varobj_set_value (var, s); + } + + if (e.reason < 0 || !ok) { gdbtk_set_result (interp, "Could not assign expression to variable object"); return TCL_ERROR; Index: library/vartree.itb =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/library/vartree.itb,v retrieving revision 1.8 diff -u -p -r1.8 vartree.itb --- library/vartree.itb 24 Apr 2009 03:38:49 -0000 1.8 +++ library/vartree.itb 29 Apr 2010 20:57:25 -0000 @@ -1,5 +1,5 @@ # Variable tree implementation for Insight. -# Copyright (C) 2002, 2009 Red Hat, Inc. +# Copyright (C) 2002, 2009, 2010 Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License (GPL) as published by @@ -286,6 +286,14 @@ itcl::body VarTree::changeValue {j} { unedit $j return } + + # NOTE: Varobj requires decimal input radix. So either + # we must assume that all input is decimal (unless prefixed by + # "0x"), or we assume that the input radix is the same as the + # variable's display radix. + # + # I think that consistency wins out over convenience here. We will + # require users to prefix non-decimal expressions. if {[catch {$entryobj value $new} errTxt]} { # gdbtk-varobj doesn't actually return meaningful error messages # so use a generic one.