diff options
-rw-r--r-- | gdb/gdbtk/library/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/gdbtk/library/bpwin.itb | 7 | ||||
-rw-r--r-- | gdb/gdbtk/library/download.itb | 2 | ||||
-rw-r--r-- | gdb/gdbtk/library/interface.tcl | 15 | ||||
-rw-r--r-- | gdb/gdbtk/library/managedwin.itb | 5 | ||||
-rw-r--r-- | gdb/gdbtk/library/prefs.tcl | 56 | ||||
-rw-r--r-- | gdb/gdbtk/library/session.tcl | 124 | ||||
-rw-r--r-- | gdb/gdbtk/library/srcbar.tcl | 17 | ||||
-rw-r--r-- | gdb/gdbtk/library/srctextwin.itb | 28 | ||||
-rw-r--r-- | gdb/gdbtk/library/srctextwin.ith | 2 | ||||
-rw-r--r-- | gdb/gdbtk/library/srcwin.itb | 160 | ||||
-rw-r--r-- | gdb/gdbtk/library/srcwin.ith | 19 | ||||
-rw-r--r-- | gdb/gdbtk/library/tclIndex | 24 |
13 files changed, 401 insertions, 66 deletions
diff --git a/gdb/gdbtk/library/ChangeLog b/gdb/gdbtk/library/ChangeLog index 2ba1b0c3952..1803c672622 100644 --- a/gdb/gdbtk/library/ChangeLog +++ b/gdb/gdbtk/library/ChangeLog @@ -1,3 +1,11 @@ +2000-11-30 Tom Tromey <tromey@cygnus.com> + + * prefs.tcl (pref_save): Put version number into file. Added + `session' to list of top-level keys. Allow keys with many `/'s. + (pref_read): Recognize version number. + (escape_value): Generate URL-style encoding. + (unescape_value): Added `version' argument. Handle URL decoding. + 2000-11-29 Larry Smith <lsmith@redhat.com> * regwin.itb (build_win,but3): Added "Double" menu entry to diff --git a/gdb/gdbtk/library/bpwin.itb b/gdb/gdbtk/library/bpwin.itb index 17f85c05dc0..ee895a9472a 100644 --- a/gdb/gdbtk/library/bpwin.itb +++ b/gdb/gdbtk/library/bpwin.itb @@ -688,10 +688,5 @@ body BpWin::goto_bp {r} { } set pc [lindex $bpinfo 3] - # !! FIXME: multiple source windows? - set src [lindex [ManagedWin::find SrcWin] 0] - set info [gdb_loc *$pc] - $src location BROWSE_TAG $info + SrcWin::choose_and_display BROWSE_TAG [gdb_loc *$pc] } - - diff --git a/gdb/gdbtk/library/download.itb b/gdb/gdbtk/library/download.itb index d7dd915aabb..38d056e70b7 100644 --- a/gdb/gdbtk/library/download.itb +++ b/gdb/gdbtk/library/download.itb @@ -266,7 +266,7 @@ body Download::download_it { } { catch {$download_dialog done} } } - + foreach src [ManagedWin::find SrcWin] { if {$download_error == "CANCEL"} { $src download_progress CANCEL 1 1 diff --git a/gdb/gdbtk/library/interface.tcl b/gdb/gdbtk/library/interface.tcl index 1669bf1466a..264ce13d58e 100644 --- a/gdb/gdbtk/library/interface.tcl +++ b/gdb/gdbtk/library/interface.tcl @@ -206,7 +206,7 @@ define_hook gdb_quit_hook # PROCEDURE: gdbtk_quit_check - Ask if the user really wants to quit. # ------------------------------------------------------------------ proc gdbtk_quit_check {} { - global gdb_downloading gdb_running + global gdb_downloading gdb_running gdb_exe_name if {$gdb_downloading} { set msg "Downloading to target,\n really close the debugger?" @@ -214,14 +214,16 @@ proc gdbtk_quit_check {} { return 0 } } elseif {$gdb_running} { - # While we are running the inferior, gdb_cmd is fenceposted and returns - # immediately. Therefore, we need to ask here. Do we need to stop the target, - # too? + # While we are running the inferior, gdb_cmd is fenceposted and + # returns immediately. Therefore, we need to ask here. Do we need + # to stop the target, too? set msg "A debugging session is active.\n" append msg "Do you still want to close the debugger?" if {![gdbtk_tcl_query $msg no]} { return 0 } + } elseif {$gdb_exe_name != ""} { + session_save } return 1 } @@ -736,6 +738,11 @@ proc gdbtk_locate_main {} { proc set_exe_name {exe} { global gdb_exe_name gdb_exe_changed #debug "set_exe_name: exe=$exe gdb_exe_name=$gdb_exe_name" + + if {$gdb_exe_name != ""} then { + session_save + } + set gdb_exe_name $exe set gdb_exe_changed 1 } diff --git a/gdb/gdbtk/library/managedwin.itb b/gdb/gdbtk/library/managedwin.itb index 1bda9f59eda..e55b8230d47 100644 --- a/gdb/gdbtk/library/managedwin.itb +++ b/gdb/gdbtk/library/managedwin.itb @@ -40,11 +40,6 @@ body ManagedWin::reveal {} { set top [winfo toplevel [namespace tail $this]] raise $top wm deiconify $top - - # I don't understand this next line and no one commented it, so it's gone. - #focus -force [focus -lastfor $top] - - focus $top } body ManagedWin::restart {} { diff --git a/gdb/gdbtk/library/prefs.tcl b/gdb/gdbtk/library/prefs.tcl index b1639ce7dc8..26676c6a5f3 100644 --- a/gdb/gdbtk/library/prefs.tcl +++ b/gdb/gdbtk/library/prefs.tcl @@ -72,10 +72,15 @@ proc pref_read {} { if {$file_opened == "1"} { set section gdb + set version 0 while {[gets $fd line] >= 0} { switch -regexp -- $line { {^[ \t\n]*#.*} { - ;# comment; ignore it + # Comment. We recognize one magic comment that includes + # the version number. + if {[regexp -- "^GDBtkInitVersion: (\[0-9\]+)\$" $line v]} { + set version $v + } } {^[ \t\n]*$} { @@ -94,7 +99,7 @@ proc pref_read {} { default { regexp "\[ \t\n\]*\(.+\)=\(.+\)" $line a name val # Must unescape equal signs in val - set val [unescape_value $val] + set val [unescape_value $val $version] if {$section == "gdb"} { pref setd gdb/$name $val } elseif {$section == "global" && [regexp "^font/" $name]} { @@ -141,6 +146,7 @@ proc pref_save {{win {}}} { } puts $fd "\# GDBtk Init file" + puts $fd {# GDBtkInitVersion: 1} set plist [pref list] # write out global options @@ -170,16 +176,18 @@ proc pref_save {{win {}}} { } } - #now loop through all sections writing out values + # now loop through all sections writing out values + # FIXME: this is broken. We should discover the list + # dynamically. lappend secs load console src reg stack locals watch bp search \ - process geometry help browser kod window + process geometry help browser kod window session foreach section $secs { puts $fd "\[$section\]" foreach var $plist { set t [split $var /] if {[lindex $t 0] == "gdb" && [lindex $t 1] == $section} { - set x [lindex $t 2] + set x [join [lrange $t 2 end] /] set v [escape_value [pref get $var]] if {$x != "" && $v != ""} { puts $fd "\t$x=$v" @@ -200,22 +208,40 @@ proc pref_save {{win {}}} { # prefs to a file # ------------------------------------------------------- proc escape_value {val} { - - if {[regsub -all -- = $val {!%} newval]} { - return $newval - } - - return $val + # We use a URL-style quoting. We encode `=', `%', the `[]' + # characters and newlines. We use a cute trick here: we regsub in + # command expressions which we then expand using subst. + regsub -all -- "(\[\]\[=%\n\])" $val \ + {[format "%%%02x" [scan {\1} %c x; set x]]} newval + return [subst -nobackslashes -novariables $newval] } # ------------------------------------------------------- # PROC: unescape_value - unescape all equal signs for -# reading prefs from a file +# reading prefs from a file. VERSION is the version +# number of the encoding. +# version 0 only encoded `='. +# version 1 correctly encoded more values # ------------------------------------------------------- -proc unescape_value {val} { +proc unescape_value {val version} { + switch -exact -- $version { + 0 { + # Old-style encoding. + if {[regsub -all -- {!%} $val = newval]} { + return $newval + } + } + + 1 { + # Version 1 uses URL encoding. + regsub -all -- "%(..)" $val \ + {[format %c 0x\1]} newval + return [subst -nobackslashes -novariables $newval] + } - if {[regsub -all -- {!%} $val = newval]} { - return $newval + default { + error "Unknown encoding version $version" + } } return $val diff --git a/gdb/gdbtk/library/session.tcl b/gdb/gdbtk/library/session.tcl new file mode 100644 index 00000000000..137794b9424 --- /dev/null +++ b/gdb/gdbtk/library/session.tcl @@ -0,0 +1,124 @@ +# Local preferences functions for GDBtk. +# Copyright 2000 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 +# the Free Software Foundation; either version 2 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. + +# +# This procedure decides what makes up a gdb `session'. Roughly a +# session is whatever the user found useful when debugging a certain +# executable. +# +# Eventually we should expand this procedure to know how to save +# window placement and contents. That requires more work. +# +proc session_save {} { + global gdb_exe_name gdb_target_name + global gdb_current_directory gdb_source_path gdb_inferior_args + + # gdb sessions are named after the executable. + set name $gdb_exe_name + set key gdb/session/$name + + # We fill a hash and then use that to set the actual preferences. + + # Always set the exe. name in case we later decide to change the + # interpretation of the session key. + set values(executable) $gdb_exe_name + + # Some simple state the user wants. FIXME: these should have + # dedicated commands instead of using `gdb_cmd'. + set values(args) $gdb_inferior_args + set values(dirs) $gdb_source_path + set values(pwd) $gdb_current_directory + + set values(target) $gdb_target_name + + # Recompute list of recent sessions. Trim to no more than 5 sessions. + set recent [concat [list $name] \ + [lremove [pref getd gdb/recent-projects] $name]] + if {[llength $recent] > 5} then { + set recent [lreplace $recent 5 end] + } + pref setd gdb/recent-projects $recent + + foreach k [array names values] { + pref setd $key/$k $values($k) + } + pref setd $key/all-keys [array names values] +} + +# +# Load a session saved with session_save. NAME is the pretty name of +# the session, as returned by session_list. +# +proc session_load {name} { + # gdb sessions are named after the executable. + set key gdb/session/$name + + # Fetch all keys for this session into an array. + foreach k [pref getd $key/all-keys] { + set values($k) [pref getd $key/$k] + } + + if {[info exists values(dirs)]} { + # FIXME: short-circuit confirmation. + gdb_cmd "directory" + gdb_cmd "directory $values(dirs)" + } + + if {[info exists values(pwd)]} { + gdb_cmd "cd $values(pwd)" + } + + if {[info exists values(args)]} { + gdb_cmd "set args $values(args)" + } + + if {[info exists values(executable)]} { + gdb_clear_file + set_exe_name $values(executable) + set_exe + } + + # FIXME: handle target +} + +# +# Delete a session. NAME is the internal name of the session. +# +proc session_delete {name} { + # FIXME: we can't yet fully define this because the libgui + # preference code doesn't supply a delete method. + set recent [lremove [pref getd gdb/recent-projects] $name] + pref setd gdb/recent-projects $recent +} + +# +# Return a list of all known sessions. This returns the `pretty name' +# of the session -- something suitable for a menu. +# +proc session_list {} { + set newlist {} + set result {} + foreach name [pref getd gdb/recent-projects] { + set exe [pref getd gdb/session/$name/executable] + # Take this opportunity to prune the list. + if {[file exists $exe]} then { + lappend newlist $name + lappend result $exe + } else { + # FIXME: if we could delete keys we would delete all keys + # associated with NAME now. + } + } + pref setd gdb/recent-projects $newlist + return $result +} diff --git a/gdb/gdbtk/library/srcbar.tcl b/gdb/gdbtk/library/srcbar.tcl index bfd1dcd82d9..8249a5fbf37 100644 --- a/gdb/gdbtk/library/srcbar.tcl +++ b/gdb/gdbtk/library/srcbar.tcl @@ -123,6 +123,17 @@ class GDBSrcBar { add_menu_command Other "Source..." \ "source_file" -underline 0 + set sessions [session_list] + if {[llength $sessions]} { + add_menu_separator + set i 1 + foreach item $sessions { + add_menu_command Other "$i $item" \ + [list session_load $item] \ + -underline 0 + } + } + add_menu_separator if {$tcl_platform(platform) == "windows"} { @@ -136,21 +147,19 @@ class GDBSrcBar { "$this _apply_source print" \ -underline 0 -accelerator "Ctrl+P" add_menu_separator - } - + add_menu_command Other "Target Settings..." "set_target_name" \ -underline 0 add_menu_separator add_menu_command None "Exit" gdbtk_quit -underline 1 - + create_run_menu create_view_menu if {[pref get gdb/control_target]} { create_control_menu - } if {[pref get gdb/mode]} { diff --git a/gdb/gdbtk/library/srctextwin.itb b/gdb/gdbtk/library/srctextwin.itb index a8c12a0ede3..393c0d649b4 100644 --- a/gdb/gdbtk/library/srctextwin.itb +++ b/gdb/gdbtk/library/srctextwin.itb @@ -692,6 +692,7 @@ body SrcTextWin::addPopup {menu label command {abg {}} {browse 1} {run 1}} { } } + # ------------------------------------------------------------------ # METHOD: handle_set_hook - Handle changes in the gdb variables # changed through the "set" gdb command. @@ -1139,6 +1140,22 @@ body SrcTextWin::_highlightAsmLine {win addr pc_addr tagname} { } # ------------------------------------------------------------------ +# METHOD: set_tag - update tag to STACK without making other changes +# ------------------------------------------------------------------ +body SrcTextWin::set_tag_to_stack {} { + foreach window [list $twin $bwin] { + if {$window == ""} then { + continue + } + foreach {start end} [$window tag ranges PC_TAG] { + $window tag remove PC_TAG $start $end + $window tag add STACK_TAG $start $end + } + } + set current(tag) STACK_TAG +} + +# ------------------------------------------------------------------ # METHOD: location - display a location in a file # ------------------------------------------------------------------ body SrcTextWin::location {tagname filename funcname line addr pc_addr lib} { @@ -1555,7 +1572,7 @@ body SrcTextWin::hasTP {win line} { } # ------------------------------------------------------------------ -# METHOD: report_current_location +# METHOD: report_source_location # # This function reports the "current" location in the source # window, where current means what gdb_loc would return, if @@ -2726,6 +2743,13 @@ body SrcTextWin::test_get {var} { } # ------------------------------------------------------------------ +# METHOD: get_file - Return name of current file. +# ------------------------------------------------------------------ +body SrcTextWin::get_file {} { + return $current(filename) +} + +# ------------------------------------------------------------------ # METHOD: clear_file - Clear out state so that user may load # new executable. For the SrcTextWin class, this means: # @@ -2801,5 +2825,3 @@ body SrcTextWin::_clear_cache {} { } } } - - diff --git a/gdb/gdbtk/library/srctextwin.ith b/gdb/gdbtk/library/srctextwin.ith index acca6b0d15d..7b6e9438dee 100644 --- a/gdb/gdbtk/library/srctextwin.ith +++ b/gdb/gdbtk/library/srctextwin.ith @@ -86,6 +86,8 @@ class SrcTextWin { method do_thread_bp {listbox} method test_get {var} method clear_file {} + method get_file {} + method set_tag_to_stack {} } protected { diff --git a/gdb/gdbtk/library/srcwin.itb b/gdb/gdbtk/library/srcwin.itb index 9388aa69aa1..ab54c2c2ceb 100644 --- a/gdb/gdbtk/library/srcwin.itb +++ b/gdb/gdbtk/library/srcwin.itb @@ -19,26 +19,29 @@ body SrcWin::constructor {args} { debug "$args" eval itk_initialize $args set top [winfo toplevel $itk_interior] - + _update_title "" - + # On Windows, create a sizebox. if {$::tcl_platform(platform) == "windows"} { ide_sizebox $itk_interior.sizebox } - + set Tracing [pref get gdb/mode] set current(filename) "" - + if {[catch {_build_win} mssg]} { dbug E "_build_win returned: $::errorInfo" } - + # add special delete handler wm protocol $top WM_DELETE_WINDOW "[code $this _exit]" - + # add hooks - add_hook gdb_update_hook "$this update" + if {! $update_hook_init} then { + set update_hook_init 1 + add_hook gdb_update_hook "SrcWin::choose_and_update" + } add_hook gdb_busy_hook "$this busy" add_hook gdb_idle_hook "$this idle" add_hook gdb_no_inferior_hook "$this no_inferior" @@ -48,6 +51,8 @@ body SrcWin::constructor {args} { after idle " update idletasks $this sizeWinByChild toolbar" + + lappend window_list $this } # ------------------------------------------------------------------ @@ -55,13 +60,16 @@ body SrcWin::constructor {args} { # ------------------------------------------------------------------ body SrcWin::destructor {} { debug - remove_hook gdb_update_hook "$this update" remove_hook gdb_busy_hook "$this busy" remove_hook gdb_no_inferior_hook "$this no_inferior" remove_hook gdb_idle_hook "$this idle" remove_hook download_progress_hook "$this download_progress" remove_hook state_hook [code $this _set_state] remove_hook gdb_clear_file_hook [code $this clear_file] + set window_list [lremove $window_list $this] + if {$pc_window == $this} then { + set pc_window "" + } } # ------------------------------------------------------------------ @@ -463,19 +471,15 @@ body SrcWin::stack {cmd} { } # ------------------------------------------------------------------ -# PUBLIC METHOD: update - update widget when PC changes +# METHOD: _update - update widget when PC changes # ------------------------------------------------------------------ -body SrcWin::update {} { - if {[catch {gdb_loc} loc]} { - set_execution_status - } else { - debug "loc=$loc" - # See if name combobox needs filled. - if {$need_files} { - fillNameCB - } - location "" $loc +body SrcWin::_update {loc} { + debug "loc=$loc" + # See if name combobox needs filled. + if {$need_files} { + fillNameCB } + location "" $loc } # ------------------------------------------------------------------ @@ -868,3 +872,121 @@ body SrcWin::clear_file {} { # run srctextwin clear_file $twin clear_file } + +# ------------------------------------------------------------------ +# METHOD: get_file +# Return name of displayed file, or empty string if no file. +# ------------------------------------------------------------------ +body SrcWin::get_file {} { + if {$twin == ""} { + return "" + } else { + return [$twin get_file] + } +} + +# ------------------------------------------------------------------ +# METHOD: is_fixed +# Return boolean indicating whether this window is fixed. +# ------------------------------------------------------------------ +body SrcWin::is_fixed {} { + return 0 +} + +# ------------------------------------------------------------------ +# METHOD: get_top +# Return toplevel +# ------------------------------------------------------------------ +body SrcWin::get_top {} { + return $top +} + +# ------------------------------------------------------------------ +# METHOD: _set_tag_to_stack +# Set tag to `stack' and update the underlying window. +# ------------------------------------------------------------------ +body SrcWin::_set_tag_to_stack {} { + set tag STACK_TAG + if {$twin != ""} then { + $twin set_tag_to_stack + } +} + +# ------------------------------------------------------------------ +# METHOD: _choose_window +# Choose the right source window. +# ------------------------------------------------------------------ +body SrcWin::_choose_window {file} { + # Find the next available source window. The rules are: + # 1. LRU overall + # 2. Skip iconified windows + # 3. If a window already shows the file, use it. Prefer the + # window currently showing the PC + # 4. If the window is fixed, skip it + if {$pc_window != ""} then { + if {[$pc_window get_file] == $file} then { + return $pc_window + } + } + + set choice "" + foreach win $window_list { + if {[wm state [$win get_top]] != "normal"} then { + continue + } + + if {[$win get_file] == "" + || [$win get_file] == $file + || ! [$win is_fixed]} then { + set choice $win + break + } + } + + # If we didn't find an available window, then pick the current PC + # window. + if {$choice == ""} then { + set choice $pc_window + } + + set window_list [lremove $window_list $choice] + lappend window_list $choice + + return $choice +} + +# ------------------------------------------------------------------ +# METHOD: choose_and_update +# Choose the right source window and then cause it to be updated +# ------------------------------------------------------------------ +body SrcWin::choose_and_update {} { + if {$pc_window == ""} then { + set pc_window [lindex $window_list 0] + } + + if {$pc_window == ""} then { + # Nothing. + } elseif {[catch {gdb_loc} loc]} { + $pc_window set_execution_status + } else { + set prev $pc_window + set file [lindex $loc 2] + set pc_window [_choose_window $file] + debug "chose window $pc_window" + $pc_window _update $loc + if {$pc_window != $prev} then { + $pc_window reveal + $prev _set_tag_to_stack + } + } +} + +# ------------------------------------------------------------------ +# METHOD: choose_and_display +# Choose the right source window for a given file +# ------------------------------------------------------------------ +body SrcWin::choose_and_display {tag linespec} { + set file [lindex $linespec 2] + set window [_choose_window $file] + $window location $tag $linespec +} diff --git a/gdb/gdbtk/library/srcwin.ith b/gdb/gdbtk/library/srcwin.ith index f955158d445..5ad1da70a51 100644 --- a/gdb/gdbtk/library/srcwin.ith +++ b/gdb/gdbtk/library/srcwin.ith @@ -48,11 +48,14 @@ class SrcWin { method stack {cmd} method test_get {var {private_func 0}} method toggle_updates {value} - method update {} method toolbar {state} method inferior {action} method clear_file {} + method get_file {} + method is_fixed {} + proc choose_and_update {} + proc choose_and_display {tag linespec} proc point_to_main {} } @@ -64,6 +67,10 @@ class SrcWin { method _set_name { val {found 1} } method _set_state {varname} method _update_title {name} + method _update {loc} + method get_top {} + method _set_tag_to_stack {} + proc _choose_window {file} variable _statbar variable _status variable _toolbar @@ -75,12 +82,18 @@ class SrcWin { variable _mangled_func variable Tracing variable saved_msg "" ;# static - + # statics used for downloads variable last_section "" variable last_section_start 0 variable last_done 0 - + + # These keep track of the current PC window and the list of all + # source windows. + common window_list "" + common pc_window "" + common update_hook_init 0 + # fenceposts variable Running 0 variable NoRun 0 diff --git a/gdb/gdbtk/library/tclIndex b/gdb/gdbtk/library/tclIndex index caaf35200c7..9a0dcd8b055 100644 --- a/gdb/gdbtk/library/tclIndex +++ b/gdb/gdbtk/library/tclIndex @@ -8,12 +8,10 @@ set auto_index(About) [list source [file join $dir about.tcl]] set auto_index(ActionDlg) [list source [file join $dir actiondlg.tcl]] -set auto_index(::tty::_xterm_rgb) [list source [file join $dir inferior_term.tcl]] -set auto_index(::tty::create) [list source [file join $dir inferior_term.tcl]] -set auto_index(::tty::destroy) [list source [file join $dir inferior_term.tcl]] set auto_index(gdbtk_tcl_preloop) [list source [file join $dir interface.tcl]] set auto_index(gdbtk_busy) [list source [file join $dir interface.tcl]] set auto_index(gdbtk_update) [list source [file join $dir interface.tcl]] +set auto_index(gdbtk_update_safe) [list source [file join $dir interface.tcl]] set auto_index(gdbtk_idle) [list source [file join $dir interface.tcl]] set auto_index(gdbtk_quit_check) [list source [file join $dir interface.tcl]] set auto_index(gdbtk_quit) [list source [file join $dir interface.tcl]] @@ -84,6 +82,10 @@ set auto_index(escape_value) [list source [file join $dir prefs.tcl]] set auto_index(unescape_value) [list source [file join $dir prefs.tcl]] set auto_index(pref_set_defaults) [list source [file join $dir prefs.tcl]] set auto_index(pref_src-font_trace) [list source [file join $dir prefs.tcl]] +set auto_index(session_save) [list source [file join $dir session.tcl]] +set auto_index(session_load) [list source [file join $dir session.tcl]] +set auto_index(session_delete) [list source [file join $dir session.tcl]] +set auto_index(session_list) [list source [file join $dir session.tcl]] set auto_index(GDBSrcBar) [list source [file join $dir srcbar.tcl]] set auto_index(TdumpWin) [list source [file join $dir tdump.tcl]] set auto_index(TfindArgs) [list source [file join $dir tfind_args.tcl]] @@ -110,7 +112,6 @@ set auto_index(list_element_strcmp) [list source [file join $dir util.tcl]] set auto_index(VariableWin) [list source [file join $dir variables.tcl]] set auto_index(::VariableWin::getLocals) [list source [file join $dir variables.tcl]] set auto_index(WarningDlg) [list source [file join $dir warning.tcl]] -set auto_index(::WarningDlg::destructor) [list source [file join $dir warning.tcl]] set auto_index(::WarningDlg::constructor) [list source [file join $dir warning.tcl]] set auto_index(WatchWin) [list source [file join $dir watch.tcl]] set auto_index(AttachDlg) [list source [file join $dir attachdlg.ith]] @@ -312,6 +313,7 @@ set auto_index(::KodWin::_disable_buttons) [list source [file join $dir kod.itb] set auto_index(::KodWin::_restore_buttons) [list source [file join $dir kod.itb]] set auto_index(::ManagedWin::reconfig) [list source [file join $dir managedwin.itb]] set auto_index(::ManagedWin::window_name) [list source [file join $dir managedwin.itb]] +set auto_index(::ManagedWin::pickle) [list source [file join $dir managedwin.itb]] set auto_index(::ManagedWin::reveal) [list source [file join $dir managedwin.itb]] set auto_index(::ManagedWin::restart) [list source [file join $dir managedwin.itb]] set auto_index(::ManagedWin::shutdown) [list source [file join $dir managedwin.itb]] @@ -393,9 +395,9 @@ set auto_index(::RegWin::fixLength) [list source [file join $dir regwin.itb]] set auto_index(::RegWin::but3) [list source [file join $dir regwin.itb]] set auto_index(::RegWin::display_all) [list source [file join $dir regwin.itb]] set auto_index(::RegWin::delete_from_display_list) [list source [file join $dir regwin.itb]] -set auto_index(::RegWin::addToWatch) [list source [file join $dir regwin.itb]] set auto_index(::RegWin::edit) [list source [file join $dir regwin.itb]] set auto_index(::RegWin::acceptEdit) [list source [file join $dir regwin.itb]] +set auto_index(::RegWin::addToWatch) [list source [file join $dir regwin.itb]] set auto_index(::RegWin::unedit) [list source [file join $dir regwin.itb]] set auto_index(::RegWin::update) [list source [file join $dir regwin.itb]] set auto_index(::RegWin::idle) [list source [file join $dir regwin.itb]] @@ -432,6 +434,7 @@ set auto_index(::SrcTextWin::FillSource) [list source [file join $dir srctextwin set auto_index(::SrcTextWin::FillAssembly) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::FillMixed) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::_highlightAsmLine) [list source [file join $dir srctextwin.itb]] +set auto_index(::SrcTextWin::set_tag_to_stack) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::location) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::LoadFile) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::display_line) [list source [file join $dir srctextwin.itb]] @@ -445,6 +448,7 @@ set auto_index(::SrcTextWin::hasTP) [list source [file join $dir srctextwin.itb] set auto_index(::SrcTextWin::report_source_location) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::lookup_line) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::continue_to_here) [list source [file join $dir srctextwin.itb]] +set auto_index(::SrcTextWin::jump_to_here) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::set_bp_at_line) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::remove_bp_at_line) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::set_tp_at_line) [list source [file join $dir srctextwin.itb]] @@ -471,6 +475,7 @@ set auto_index(::SrcTextWin::print) [list source [file join $dir srctextwin.itb] set auto_index(::SrcTextWin::ask_thread_bp) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::do_thread_bp) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::test_get) [list source [file join $dir srctextwin.itb]] +set auto_index(::SrcTextWin::get_file) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::clear_file) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::_initialize_srctextwin) [list source [file join $dir srctextwin.itb]] set auto_index(::SrcTextWin::_clear_cache) [list source [file join $dir srctextwin.itb]] @@ -487,7 +492,7 @@ set auto_index(::SrcWin::fillNameCB) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::fillFuncCB) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::location) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::stack) [list source [file join $dir srcwin.itb]] -set auto_index(::SrcWin::update) [list source [file join $dir srcwin.itb]] +set auto_index(::SrcWin::_update) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::idle) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::mode) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::_update_title) [list source [file join $dir srcwin.itb]] @@ -507,6 +512,13 @@ set auto_index(::SrcWin::test_get) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::toolbar) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::inferior) [list source [file join $dir srcwin.itb]] set auto_index(::SrcWin::clear_file) [list source [file join $dir srcwin.itb]] +set auto_index(::SrcWin::get_file) [list source [file join $dir srcwin.itb]] +set auto_index(::SrcWin::is_fixed) [list source [file join $dir srcwin.itb]] +set auto_index(::SrcWin::get_top) [list source [file join $dir srcwin.itb]] +set auto_index(::SrcWin::_set_tag_to_stack) [list source [file join $dir srcwin.itb]] +set auto_index(::SrcWin::_choose_window) [list source [file join $dir srcwin.itb]] +set auto_index(::SrcWin::choose_and_update) [list source [file join $dir srcwin.itb]] +set auto_index(::SrcWin::choose_and_display) [list source [file join $dir srcwin.itb]] set auto_index(::StackWin::constructor) [list source [file join $dir stackwin.itb]] set auto_index(::StackWin::destructor) [list source [file join $dir stackwin.itb]] set auto_index(::StackWin::build_win) [list source [file join $dir stackwin.itb]] |