aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbtk.tcl
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1994-12-13 01:04:38 +0000
committerStu Grossman <grossman@cygnus>1994-12-13 01:04:38 +0000
commitcb3313c14750f7d9e0e91d262bc758e08e9d72b0 (patch)
tree0edfb5bccbe2e9fa8b2f452cb99fcb396a71165d /gdb/gdbtk.tcl
parentc676d8274d8cea8f3eb8a35ef8def259f82b723d (diff)
downloadfsf-binutils-gdb-cb3313c14750f7d9e0e91d262bc758e08e9d72b0.zip
fsf-binutils-gdb-cb3313c14750f7d9e0e91d262bc758e08e9d72b0.tar.gz
fsf-binutils-gdb-cb3313c14750f7d9e0e91d262bc758e08e9d72b0.tar.bz2
* gdbtk.tcl (reg_config_menu create_registers_window
recompute_reg_display_list): Use array instead of individual vars for register display list. * (recompute_reg_display_list update_registers): Fix bug with not displaying all registers.
Diffstat (limited to 'gdb/gdbtk.tcl')
-rw-r--r--gdb/gdbtk.tcl31
1 files changed, 19 insertions, 12 deletions
diff --git a/gdb/gdbtk.tcl b/gdb/gdbtk.tcl
index 12f1ee3..97fec0e 100644
--- a/gdb/gdbtk.tcl
+++ b/gdb/gdbtk.tcl
@@ -1151,7 +1151,7 @@ proc reg_config_menu {} {
for {set regnum 0} {$regnum < $num_regs} {incr regnum} {
set regname [lindex $regnames $regnum]
checkbutton .reg.config.col$col.$row -text $regname -pady 0 \
- -variable regena.$regnum -relief flat -anchor w -bd 1 \
+ -variable regena($regnum) -relief flat -anchor w -bd 1 \
-command "recompute_reg_display_list $num_regs
populate_reg_window
update_registers all"
@@ -1186,12 +1186,12 @@ proc create_registers_window {} {
if ![info exists reg_format] {
global reg_display_list
global changed_reg_list
+ global regena
set reg_format {}
set num_regs [llength [gdb_regnames]]
for {set regnum 0} {$regnum < $num_regs} {incr regnum} {
- global regena.$regnum
- set regena.$regnum 1
+ set regena($regnum) 1
}
recompute_reg_display_list $num_regs
set changed_reg_list $reg_display_list
@@ -1239,17 +1239,22 @@ proc create_registers_window {} {
populate_reg_window
}
-# Convert all of the regena.$regnums into a list of the enabled $regnums
+# Convert regena into a list of the enabled $regnums
proc recompute_reg_display_list {num_regs} {
global reg_display_list
+ global regmap
+ global regena
catch {unset reg_display_list}
+
+ set line 1
for {set regnum 0} {$regnum < $num_regs} {incr regnum} {
- global regena.$regnum
- if {[set regena.$regnum] != 0} {
+ if {[set regena($regnum)] != 0} {
lappend reg_display_list $regnum
+ set regmap($regnum) $line
+ incr line
}
}
}
@@ -1308,6 +1313,7 @@ proc update_registers {which} {
global reg_display_list
global changed_reg_list
global highlight
+ global regmap
set margin [expr $max_regname_width + 1]
set win .reg.text
@@ -1317,13 +1323,13 @@ proc update_registers {which} {
$win configure -state normal
if {$which == "all"} {
- set row 1
+ set lineindex 1
foreach regnum $reg_display_list {
set regval [gdb_fetch_registers $reg_format $regnum]
set regval [format "%-*s" $valwidth $regval]
- $win delete $row.$margin "$row.0 lineend"
- $win insert $row.$margin $regval
- incr row
+ $win delete $lineindex.$margin "$lineindex.0 lineend"
+ $win insert $lineindex.$margin $regval
+ incr lineindex
}
$win configure -state disabled
return
@@ -1339,11 +1345,12 @@ proc update_registers {which} {
set changed_reg_list [eval gdb_changed_register_list $reg_display_list]
+ set lineindex 1
foreach regnum $changed_reg_list {
set regval [gdb_fetch_registers $reg_format $regnum]
set regval [format "%-*s" $valwidth $regval]
- set lineindex $regnum
- incr lineindex
+
+ set lineindex $regmap($regnum)
$win delete $lineindex.$margin "$lineindex.0 lineend"
$win insert $lineindex.$margin $regval
$win tag add $win.$regnum $lineindex.0 "$lineindex.0 lineend"