summaryrefslogtreecommitdiff
path: root/gdb/gdbtk/library/srctextwin.ith
blob: fae89ad294b82b8e7f9b338fc66c4e4dad8831bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# 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

}