# SrcTextWin class definition, for Insight # Copyright (C) 1997, 1998, 1999, 2001 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. itcl::class SrcTextWin { inherit itk::Widget GDBWin public { variable Tracing ;# 1 if we are running in trace mode variable Browsing 0 ;# 1 if we are browsing a trace experiment variable parent {} ;# the parent SrcWin variable ignore_var_balloons 0; # ignore all variable balloons # Set the height of the src window variable textheight 5i { catch {$itk_interior.p configure -height $itk_option(-textheight)} } method constructor {args} method destructor {} method disassembly_changed {} method reconfig {} method trace_find_hook {mode from_tty} method set_control_mode {mode} method build_popups {} method build_win {} method SetRunningState {state} method enable {on} method setTabs {win {asm S}} method enable_disable_src_tags {win how} method config_win {win {asm S}} method addPopup {menu label command {abg {}} {browse 1} {run 1}} method updateBalloon {} method ClearTags {} method FillSource {winname tagname filename funcname line addr pc_addr lib} method FillAssembly {winname tagname filename funcname line addr pc_addr lib} method FillMixed {winname tagname filename funcname line addr pc_addr lib} method location {tagname filename funcname line addr pc_addr lib} method LoadFile {winname name lib mtime_changed} method display_line { win line } method display_breaks {} method insertBreakTag {win linenum tag} method removeBreakTag {win linenum tag } method bp {action bpnum addr {linenum {}} {file {}} {type 0} {enabled 0} {thread -1}} method do_bp { win action linenum type bpnum enabled thread asm} method hasBP {win line} method hasTP {win line} method report_source_location {} method lookup_line {win y} method continue_to_here {{win {}} {y -1} {threads -1}} method jump_to_here {{win {}} {y -1} {threads -1}} method set_bp_at_line {{type N} {win {}} {y -1} {threads "-1"}} method remove_bp_at_line {{win {}} {y -1}} method enable_disable_at_line {action} method set_tp_at_line {{win {}} {y -1}} method next_hit_at_line {{win {}} {y -1}} method remove_tp_at_line {{win {}} {y -1}} method do_tag_popup {name X Y y} method do_source_popup { X Y x y } method addToWatch {var} method do_key {key} method mode_get {} method mode_set {new_mode {go 1}} method cancelMotion {} method motion {type win x y} method showBPBalloon {win x y} method showBalloon {win x y} method getVariable {x y {line {}}} method trace_help {args} method line_is_executable {win line} method tracepoint_range {win low high} method search {exp direction} method LoadFromCache {pname name asm lib} method UnLoadFromCache {pname oldpane name asm lib} method print {top} method ask_thread_bp {} method do_thread_bp {listbox} method test_get {var} method clear_file {} method get_file {} method set_tag_to_stack {} # GDB Events method breakpoint {event} method tracepoint {event} method set_variable {event} } private { variable top ;# toplevel window variable twin ;# top text window of pane variable _tpane ;# top pane name variable bwin "" ;# bottom text window of pane variable _bpane "" ;# bottom pane name variable do_display_breaks 0 ;# flag variable popups variable timeoutID {} ;# The timeout ID for the variable balloon help variable UseVariableBalloons variable mode_changed 0 variable current ;# our current state variable pc ;# where the PC is now variable oldmode "" ;# remember the mode we want, even if we can't have it variable Running 0 ;# another way to disable things while target is active variable Linenums ;# use linenumbers? variable SearchIndex 1.0 ;# static variable id ;#thread id to line mapping # needed for assembly support variable _map variable Cname "" ;# cache index name for _map # cache is not shared among windows yet. That could be a later # optimization variable Stwc ;# Source Text Window Cache variable filenum 0 # The variable object which the variable balloon describes variable _balloon_var {} method balloon_value {variable} method _mtime_changed {filename} method _initialize_srctextwin {} method _clear_cache {} method _highlightAsmLine {win addr pc_addr tagname filename funcname} {} proc makeBreakDot {size colorList {image {}}} } # common variables are shared among all objects of this type # break_images stores the images associated with the break dot. # bp # temp_bp # disabled_bp # tp # thread_bp protected common break_images # This is the list of bp types. Be nice, and don't put spaces in # any of the elements of this list... protected common bp_types {bp temp_bp disabled_bp thread_bp} # This variable is used in the "Continue to here" case, where we are # disabling then reenabling breakpoints behind the user's back to # implement this feature, but we don't want the user to see this... protected common dont_change_appearance 0 protected common TimeOut 100 ;# The timeout value for variable balloon help }