📄 debug4.html
字号:
<p><code><font size="2">variable name = <is not in scope></font></code></p>
<p>当表达式在作用域内,调试器将显示它的值。</p>
<p>要添加一个作用域内的变量监视,从 Threads, calls stacks, and data 视图中选中你要监视的变量。然后,右击。菜单允许你为所选的变量类型添加一个作用域内的监视,这些变量类型包括:</p>
<ul>
<li>字段 - 定义在 Java 对象内的 Java 变量。</li>
<li>静态字段 - 定义为静态的 Java 变量(一个类变量)。</li>
<li>当地变量 - 在一个方法或构建器局部范围内的变量 。</li>
<li>'this' 对象 - 你正在使用到(work through)的类实例。</li>
<li>数组 - 相同类型的对象的集合。</li>
<li>数组成分 - 一个单个的数组元素。</li>
</ul>
<p>下图显示了这些监视类型的一部分怎样在 Data watches 视图中显示。 </p>
<p class="btbl">作用域内变量监视的类型</p>
<table border="1" width="732" cellspacing="0" cellpadding="0">
<tr>
<th width="73" style="background-color: #000080"><font color="#FFFFFF" size="2">监视类型</font></th>
<th width="331" style="background-color: #000080"><font color="#FFFFFF" size="2">显示</font></th>
<th width="306" style="background-color: #000080"><font color="#FFFFFF" size="2">描述</font></th>
</tr>
<tr>
<td width="73"><font size="2">字段监视</font></td>
<td align="left" width="331"><font size="2"><img src="images/db_primitive.gif"> <code><span class="smaller">"addResult"DebugTutorial.Frame1.this.addResult:
<br>
double=68.0</span></code></font></td>
<td width="306"><font size="2">被监视的 <code>addResult</code> 字段是个简单的类型。它在 <code>DebugTutorial.Frame1 内。</code> 它的值为 68.0.</font></td>
</tr>
<tr>
<td width="73"><font size="2">局部变量监视</font></td>
<td align="left" width="331"><font size="2"><img src="images/db_object.gif"> <code><span class="smaller">"valueOneDouble"valueOneDouble:
<br>
java.lang.double={java.lang.Double@354}</span></code> </font> </td>
<td width="306"><font size="2">被监视的局部变量为 <code>valueOneDouble。</code> 它被定义为 <code>Double</code> 对象。</font></td>
</tr>
<tr>
<td width="73"><font size="2">对象监视</font></td>
<td align="left" width="331"><font size="2"><img src="images/db_object.gif"> <code><span class="smaller">"DebugTutorial.Frame1"<reference>DebugTutorial.Frame1=
<br>
{DebugTutorial.Frame1@353}</span></code></font></td>
<td width="306"><font size="2">被监视的对象为 <code>DebugTutorial.Frame1。</code> 展开这个对象显示据数成员。</font></td>
</tr>
<tr>
<td width="73"><code><font size="2">this</font></code><font size="2">监视</font></td>
<td align="left" width="331"><font size="2"><img src="images/db_object.gif"> <code><span class="smaller">"this" this:{DebugTutorial.Frame1@353}</span></code></font></td>
<td width="306"> <font size="2"> <code>DebugTutorial.Frame1</code>的当前实例。展开对象显示这个当前实例的数据成员。</font></td>
</tr>
<tr>
<td width="73"><font size="2">数组监视</font></td>
<td align="left" width="331"><font size="2"><img src="images/db_array.gif"> <code><span class="smaller">"valueOneText"<reference>char[]=char[2]</span></code> </font> </td>
<td width="306"><font size="2">被监视的数组称为 <code>valueOneText。</code> 它有两个数组元素。</font></td>
</tr>
<tr>
<td width="73"><font size="2">数组成分监视</font></td>
<td align="left" width="331"><font size="2"><img src="images/db_primitive.gif"> <code><span class="smaller">"[0] = '3'</span></code> </font> </td>
<td width="306"><font size="2">数组 <code>valueOneText</code>的第一个元素。它包含值 '3.'</font></td>
</tr>
</table>
<!--************************************************************-->
<a name="object_watches"></a>
<h4><font size="2" color="#000080"><b>对象监视</b></font></h4>
<!--BNDX="watches:object watches;object watches"-->
<p>一个对象监视监视了一个特定的 Java 对象。</p>
<p>要添加一个对象监视,</p>
<ol>
<li>选中你要监视的那个对象。你可以在 Data watches 视图, Threads, calls stacks, and data 视图,或在 Loaded classes and static data 视图中选中一个对象。</li>
<li>右击并选中Create Object Watch。</li>
</ol>
<p><kbd>this</kbd> 对象监视监视了所选对象的当前实例。 <!--************************************************************-->
</p>
<a name="editing_a_watch"></a>
<h4><font color="#000080" size="2"><b>编辑一个监视</b></font></h4>
<!--BNDX="watches:editing;debugging:editing watches"-->
<p>要编辑一个监视表达式,在 Data watches 试图中选择表达式,然后右击。</p>
<ul>
<li>要改变监视名字,选择 Change Watch Expression。在 Change Watch Expression 对话框中输入新的名字。</li>
<li>要改变监视描述,选择 Change Watch Description。在 Change Watch Description 对话框中输入新的名字。</li>
</ul>
<!--************************************************************-->
<a name="deleting_a_watch"></a>
<h4><b><font size="2" color="#000080">删除监视</font></b></h4>
<!--BNDX="watches:deleting;debugging:deleting watches;Remove Watch command"-->
<p>要删除一个监视表达式,在 Data watches 试图中选择要删除的表达式,然后选择 Remove Watch 或者按下 <kbd>Delete</kbd>。在 Data watches 试图中的空白区域右击并选中 Remove All ,可以删除所有的监视。</p>
<p><span class="bscanwarn">警告:</span> Remove All 命令不能被倒退。</p> <!--************************************************************-->
<a name="evaluating_and_modifying_expressions"></a>
<h3><b><font size="2" color="#000080">表达式求值和修改</font></b></h3>
<!--BNDX="evaluating and modifying expressions;expressions:evaluating and modifying"-->
<p>你可以对表达式求值,改变数据项的值以及通过 Evaluate/Modify 对话框(Run|Evaluate/Modify)求方法调用的值。当你认为你已找到错误的解决方法,并想在退出调试器,改变源代码,重新编译程序前尝试这个修改,这个特性会很有用。 </p>
<p>要打开 Evaluate/Modify 对话框,选中 Run|Evaluate/Modify。 <!--************************************************************-->
</p>
<a name="evaluating_expressions"></a>
<h4><font size="2" color="#000080"><b>表达式求值</b></font></h4>
<!--BNDX="expressions:evaluating"-->
<p>要对一个表达式求值,在 Expression 域内输入表达式。如果表达式已在编辑器中选择,表达式将自动地输入 Expression 域。然后,点击 Evaluate 按钮。你可以用这个对话框求出任何有效的语言表达式,但除了不在当前作用域内的表达式。如果结果是个对象,注意,对象的内容将被显示。</p>
<p class="bfig">在 Evaluate/Modify 对话框中表达式的求值。</p>
<p><img src="images/db_evaluatemodify_expr.gif"> <!--************************************************************-->
</p>
<a name="evaluating_method_calls"></a>
<h4><font color="#000080" size="2"><b>方法调要的求值</b></font></h4>
<!--BNDX="method calls:evaluating"-->
<blockquote class="bsku">这是 JBuilder Professional and Enterprise 的一项属性。</blockquote>
<p>方法调用的结果也可以被求值。为了对一个方法调用求值,在 Evaluate/Modify 对话框的 Expression 域内输入方法和它的参数。点击 Evaluate 。</p>
<p>在这个例子中,方法返回值为 <code>true。</code></p>
<p class="bfig">Evaluate/Modify 对话框内的方法求值。</p>
<p><img src="images/db_evaluatemodify_method.gif"> <!--************************************************************-->
</p>
<a name="modifying_the_values_of_variables"></a>
<h4><b><font color="#000080" size="2">修改变量的值</font></b></h4>
<!--BNDX="modifying:values of variables;variables:modifying values;debugging:modifying values"-->
<blockquote class="bsku">这是 JBuilder Professional and Enterprise 一项属性。</blockquote>
<p>你可以在调试过程期间改变变量的值,从而验证不同的错误猜测,看到在不同的环境下部分代码的行为。</p>
<p>当你通过调试器修改一个变量的值,修改只对特定运行的程序有效 - 通过 Evaluate/Modify 对话框进行的变动并不影响你的程序源代码或已编译的程序。要使你的变动是值久的,你必须在编辑器中修改你的程序源代码,然后重新编译你的程序。</p>
<p>要修改一个变量的值,在 Expression 编辑框输入</p>
<p><code><font size="2">variable = <new value></font></code></p>
<p> 调试器将在 Result 显示框中显示结果。注意,求得的结果必须与变量的类型是兼容的。</p>
<p>你也可以通过下面步骤来修改一个变量的值:</p>
<ol>
<li>打开 Evaluate/Modify 对话框,然后在 Expression 编辑框中输入你想要修改的变量的名字。</li>
<li>点击 Evaluate 求这个变量的值。</li>
<li>在 New Value 编辑框中(或在下拉列表中选择一个值)输入一个值,然后点击 Modify 更新变量。</li>
</ol>
<p>在 Expression 输入框或 New Value 框中的表达式的得到的值必须与你想把它赋给的变量时类型兼容的。
通常来说,如果赋值将导致一个 编译时或运行时错误,那么它不是一个合法的修改值。</p>
<p>例如,假定 <code>valueOneText</code> 是一个 <code>String</code> 对象。如果在 Expression 输入域中你输入:</p>
<p><code><font size="2">valueOneText=34</font></code></p>
<p>下面表示类型不匹配的消息将在 Result 域中显示出来 :</p>
<p><code><font size="2">incompatible types; found int; required java.lang.String</font></code></p>
<p>你应该在Expression 输入域中你输入:</p>
<p><code><font size="2">valueOneDouble="34"</font></code></p>
<p>为表达式设置新值。</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -