blob: f5975345b3140d57638932eac68fa09a02a59550 (
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
|
<HTML>
<HEAD>
<TITLE>tkcon: observe procedure</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="./style.css">
</HEAD>
<BODY BGCOLOR=#FFFFFF>
<TABLE WIDTH=100% BORDER=0 CELLSPACING=2 CELLPADDING=0 BGCOLOR=#000000><TR><TD>
<!-- start header info -->
<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=#FFFFFF>
<TR>
<TH><FONT SIZE=+3>tkcon: <CODE>observe</CODE> procedure</FONT></TH>
<TD align=right>
<A href="http://tkcon.sourceforge.net/">
<IMG src="http://sourceforge.net/sflogo.php?group_id=11462&type=1" width="88"
height="31" border="0" alt="SourceForge Logo"></A>
</TD>
</TR>
</TABLE>
<!-- end header info -->
</TD></TR><TR><TD>
<!-- start main navigation table -->
<TABLE BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR=#CCCCCC width=100%>
<TR>
<TH CLASS="hi"><A HREF="index.html" CLASS="hi">Documentation</A></TH>
<TH><A HREF="purpose.html">Purpose & Features</A></TH>
<TH><A HREF="limits.html">Limitations</A></TH>
<TH><A HREF="todo.html">To Do</A></TH>
<TH><A HREF="license.terms">License</A></TH>
</TR><TR>
<TH COLSPAN=2><A HREF="plugin.html">Online Demo</A>
(requires <A HREF="http://tcl.activestate.com/software/plugin/">Tk plugin</A>)</TH>
<TH COLSPAN=3><A HREF="nontcl.html">Using TkCon with other Tk Languages</A></TH>
</TR>
</TABLE>
<!-- end main navigation table -->
</TD></TR><TR><TD>
<!-- start secondary navigation table -->
<TABLE BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR=#BBBBBB width=100%>
<TR>
<TH><A HREF="start.html">Getting Started</A></TH>
<TH><A HREF="bindings.html">Special Bindings</A></TH>
<TH><A HREF="procs.html">Procedures</A></TH>
<TH><A HREF="demopic.png">Screenshot</A></TH>
</TR>
<TR>
<TH><A HREF="dump.html"><CODE>dump</CODE></A></TH>
<TH><A HREF="tkcon.html"><CODE>tkcon</CODE></A></TH>
<TH><A HREF="idebug.html"><CODE>idebug</CODE></A></TH>
<TH CLASS="hi2"><A HREF="observe.html" CLASS="hi2"><CODE>observe</CODE></A></TH>
</TR>
</TABLE>
<!-- end secondary navigation table -->
</TD></TR><TR><TD BGCOLOR=#FFFFFF>
<DIV CLASS="indent">
<P>
This command provides runtime debugging output for variables and commands
without the need to edit your code. For variables, the underlying mechanism
uses <code>trace</code> and <code>dump var</code>. For commands, it renames
the observed procedure and uses a special wrapper procedure. <b><font
color="#FF0000">WARNING:</font></b> using this procedure after checkpointing
state will result in major problems if you clean state because the renamed
(true) commands will be lost.
<P>
This procedure is experimental. Comments are encouraged.
<DL>
<DT> <CODE>observe <b>command</b></CODE> <I>cmdname ?maxlevel?</I>
<DD> This will create a wrapper command which prints out (using
<code>dump</code>) the call stack to the console. <i>maxlevel</i>
represents the maximum number of levels of the call stack which will be
printed (defaults to 4).
<DT> <CODE>observe <b>cdelete</b></CODE> <I>cmdname</I>
<DD> Removes the wrapper around an observed command.
<DT> <CODE>observe <b>cinfo</b></CODE> <I>cmdname</I>
<DD> Prints out useless info.
<DT> <CODE>observe <b>variable</b></CODE> <I>varname operation ?args?</I>
<DD> Currently a wrapper around trace that uses <code>dump</code> to
print out the value of the named variable whenever the specified operation
on that variable occurs (must be read, write or unset).
<DT> <CODE>observe <b>vdelete</b></CODE> <I>varname operation</I>
<DD> Deletes the trace wrapper around the named variable.
<DT> <CODE>observe <b>vinfo</b></CODE> <I>varname</I>
<DD> Prints out trace info about the named variable.
</DL>
</DIV>
</TD></TR></TABLE>
<HR NOSHADE SIZE=1>
<ADDRESS><FONT SIZE=2>©
Jeffrey Hobbs</FONT></ADDRESS>
</BODY>
</HTML>
|