summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Hunt <hunt@redhat.com>2002-12-03 23:44:49 +0000
committerMartin Hunt <hunt@redhat.com>2002-12-03 23:44:49 +0000
commita64d9551ecac33496950bb0b9b29b69df9425d43 (patch)
treebc1a86111d747bde32894506254b42fa3b092599
parent8dffc81930997cd9da6d58537ab48f4d7973c8bd (diff)
downloadgdb-a64d9551ecac33496950bb0b9b29b69df9425d43.tar.gz
2002-12-03 Martin M. Hunt <hunt@redhat.com>
* library/vartree.itb (buildlayer): Check for error when updating a variable's value. (update_var): Ditto.
-rw-r--r--gdb/gdbtk/ChangeLog4
-rw-r--r--gdb/gdbtk/library/vartree.itb18
2 files changed, 18 insertions, 4 deletions
diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog
index 2142c96c8ba..1cb929752b1 100644
--- a/gdb/gdbtk/ChangeLog
+++ b/gdb/gdbtk/ChangeLog
@@ -1,5 +1,9 @@
2002-12-03 Martin M. Hunt <hunt@redhat.com>
+ * library/vartree.itb (buildlayer): Check for error when updating
+ a variable's value.
+ (update_var): Ditto.
+
* library/srcpref.itb: Latest tk doesn't support
"-col" as a grid option. Use "-column".
diff --git a/gdb/gdbtk/library/vartree.itb b/gdb/gdbtk/library/vartree.itb
index fa6bc8b6f8b..32e3389ad2d 100644
--- a/gdb/gdbtk/library/vartree.itb
+++ b/gdb/gdbtk/library/vartree.itb
@@ -71,7 +71,12 @@ itcl::body VarTree::buildlayer {tlist in} {
set x [expr [lindex [$c bbox $j1] 2] + 5]
set j2 [$c create text $x $y -text "([$var type])" -fill $colors(type) -anchor w -font global/fixed]
set x [expr [lindex [$c bbox $j2] 2] + 5]
- set j3 [$c create text $x $y -text "[$var value]" -fill $colors(value) -anchor w -font global/fixed]
+ if {[catch {$var value} val]} {
+ # error accessing memory, etc.
+ set j3 [$c create text $x $y -text $val -fill $colors(error) -anchor w -font global/fixed]
+ } else {
+ set j3 [$c create text $x $y -text $val -fill $colors(value) -anchor w -font global/fixed]
+ }
set var_to_items($var) [list $j1 $j2 $j3]
set item_to_var($j1) $var
@@ -126,11 +131,15 @@ itcl::body VarTree::update_var {var enabled check} {
if {$enabled} {
$c itemconfigure $nam -fill $colors(name)
$c itemconfigure $typ -fill $colors(type)
- if {[$c itemcget $val -text] != [$var value]} {
- $c itemconfigure $val -text [$var value] -fill $colors(change)
+
+ if {[catch {$var value} value]} {
+ set color $colors(error)
+ } elseif {[$c itemcget $val -text] != $value} {
+ set color $colors(change)
} else {
- $c itemconfigure $val -text [$var value] -fill $colors(value)
+ set color $colors(value)
}
+ $c itemconfigure $val -text $value -fill $color
} else {
$c itemconfigure $nam -fill $colors(disabled)
$c itemconfigure $typ -fill $colors(disabled)
@@ -381,6 +390,7 @@ itcl::body VarTree::_compare {a b} {
itcl::body VarTree::_init_data {} {
set colors(name) "\#0000C0"
set colors(type) "red"
+ set colors(error) "red"
set colors(value) "black"
set colors(change) "green"
set colors(disabled) "gray50"