blob: fae89ad294b82b8e7f9b338fc66c4e4dad8831bd [file] [log] [blame]
# 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
}