📄 debug2.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta name="generator" content="Microsoft FrontPage 4.0">
<title>Building Applications: Controlling program execution</title>
<meta name="Author" content="kt">
<link type="text/css" href="../jbdocs.css" rel="stylesheet">
</head>
<body bgcolor="#fefef2" style="FONT-SIZE: 9pt">
<a name="controlling_program_execution"></a>
<STRONG><FONT color=#0080FF size=3 >控制程序的执行</font></strong>
<hr>
译者名字: zdx_nari(JD001)<br>
邮件地址:<A href="mailto:zandx76@hotmail.com">zandx76@hotmail.com</A>
<p>一个调试器最重要的特征就是它可以让你控制你程序的执行。例如,你可以控制你程序是执行一行代码,一个完整的方法,还是一个完整的程序块。通过人为控制程序什么时候应该运行,什么时候应该暂停,你可以快速地经过你知道已正确工作的代码部分而集中精力于导致问题的那部分。 <!--************************************************************-->
</p>
<a name="running_and_pausing_your_program"></a>
<p><font color="#000080" size="2"><b>运行和挂起你的程序</b></font></p>
<!--BNDX="programs:running;programs:suspending;debugging:suspending and running debugger"-->
<p>当你的程序在调试器中运行时,你需要暂停它从而检查数据的值。暂停导致调试器挂起你的程序。从而你可以使用调试器来检查程序特定区域(location)的状态。
</p>
<p>当你正在使用调试器时,你的程序可以处于两种可能状态之一 <em>运行</em> 或者 <em>挂起。</em></p>
<ul>
<li>当调试器工具栏上的 Pause 图标 <img src="images/db_toolbar_pause.gif" align="top" width="16" height="19"> 可以使用,你的程序正在运行。</li>
<li>当你点击 Pause 图标,你的程序就被挂起。当你的程序被挂起时,你可以检查数据值。调试器工具栏上的步进(stepping)图标就变得可以使用。
</li>
</ul>
<p>要恢复程序的执行,选择调试器工具栏的 Resume Program 图标 <img src="images/db_toolbar_resume.gif" align="top">。当调试过程结束,这个图标变为 Restart Program 图标 <img src="images/toolbardebug.gif" align="top"> 并重新开始调试过程。 <!--************************************************************-->
</p>
<a name="resetting_the_program"></a>
<h3><font color="#000080" size="2"><b>复位程序</b></font></h3>
<!--BNDX="debugging:resetting program"-->
<p>在调试期间,可能需要把程序复位至开始。例如,如果程序执行要经过一个错误的地方,或者变量/数据结构由于含有不需要的值而被破坏,也许你需要复位你的程序</p>
<p>要结束当前程序的运行,执行以下方法中的一种:</p>
<ul>
<li>选中 <a href="../ui/menus/mrun.html">Run|Reset Program</a>.</li>
<li>点击调试器工具栏上的 Reset Program 图标  <img src="images/db_toolbar_reset.gif" align="top">  </li>
</ul>
<p>复位一个程序就释放了资源并清除了所有的变量设置。然而,复位一个程序并不删除你已设置的任何断点或观察,这使得恢复调试过程变地容易。</p>
<p> 要重新启动程序,点击调试器工具栏上的 Restart Program 图标  <img src="images/toolbardebug.gif" align="top">  <!--************************************************************-->
</p>
<a name="the_execution_point"></a>
<h3><b><font color="#000080" size="2">执行点</font></b></h3>
<!--BNDX="execution point:overview;debugging:execution point"-->
<p>当你处于一个挂起的调试过程时,一个线程的当前执行点的那行代码在编辑器中被加亮显示,且在左边页有一个绿色的箭头 <img src="images/greenarrow.gif" align="top"> </p>
<p>执行点标志了将被调试器执行的下一行源代码。当你在调试器中暂停了程序的执行,所选线程的当前执行点被加亮显示。执行点总是显示了将被执行的下一行代码,无论你将 step over,step into,还是不中断的执行你的程序。</p>
<p>要找到当前的执行点,使用下面的方法之一:</p>
<ul>
<li>选中 Run|Show Execution Point.</li>
<li>点击调试器工具栏上的 Show Current Frame 图标  <img src="images/db_toolbar_showframe.gif">
<p>调试器显示了当前执行点所在的那块区域的代码。执行点的标志是在编辑器的左边页有一个绿色的箭头。那一行的代码被加亮显示。
</p></li>
</ul>
<p class="bfig">执行点</p>
<p><img src="images/db_execution_point.gif"></p>
<p>调试时,你可以自由的在编辑器中打开、关闭、通过(navigate)任何文件。由于这一点,很容易失去接下来要执行的程序的踪迹,或者当前程序作用域(scope)的位置。为了回到执行点,选中 Run|Show Execution Point ,或者, 点击调试器工具栏上的 Show Current Frame 图标  <img src="images/db_toolbar_showframe.gif"><!--************************************************************-->
</p>
<a name="managing_threads"></a>
<h3><font color="#000080" size="2"><b>管理线程</b></font></h3>
<!--BNDX="threads:managing;debugging:managing threads"-->
<p>要使用调试器来管理程序中的线程,你可以使用 <a href="debug.html">Threads, call stacks, and data 视图</a> 和 <a href="debug.html">Synchronization monitors 视图。</a></p>
<ul>
<li>Threads, call stacks, and data 视图 显示了程序中的所有线程组的当前状态。它也按照方法调用的次序显示了这个程序所调用的所有方法。这个视图允许你跟踪具体的调用,从而到达当前错误。你也可以使用这个窗格回到方法被调用的地方。</li>
<li>Synchronization monitors 视图 显示了调试程序的所有线程使用的同步监视器及它们的当前状态</li>
</ul>
<!--************************************************************-->
<a name="split_pane"></a>
<h4><font size="2" color="#000080">使用分离的窗格</font></h4>
<!--BNDX="threads:split pane;Threads, call stacks and data view:split pane"-->
<blockquote class="bsku">这是 JBuilder Professional and Enterprise 的一项属性。</blockquote>
<p>Threads, call stacks, and data 视图的默认显示被分为了两个窗格。视图的左边部分可以来显示栈结构。右边部分来显示左边被选项的内容,允许右边部分显示从线程组到变量的任何东西。例如,如果在左视图中选择了一个线程,这个视图的右边部分将显示那个线程的栈结构。或者,如果在左视图中选择了栈结构,那么在右视图中将显示在那个视图中可以得到的变量。
</p>
<p class="bfig">Threads, call stacks, and data 视图分离窗格</p>
<p><img src="images/db_thread_view.gif"> <!--************************************************************-->
</p>
<a name="display_current_thread"></a>
<h4><font size="2" color="#000080"><b>只显示当前线程</b></font></h4>
<!--BNDX="threads:displaying current;debugging:displaying current thread"-->
<p>要只显示当前线程的调用栈和数据,</p>
<ol>
<li>显示 Threads, call stacks, and data 视图。</li>
<li>右击这个视图的空白区。</li>
<li>选中 Show Current Thread Only。除了当前线程以外的所有线程都从视图中移走。</li>
<li>要重新显示所有的线程,右击这个视图的空白区并点击 Show Current Thread。</li>
</ol>
<!--************************************************************-->
<a name="display_top_frame"></a>
<h4><b><font size="2" color="#000080">显示顶端栈结构</font></b></h4>
<!--BNDX="threads:displaying top stack frame;debugging:displaying top stack frame"-->
<p>要显示当前线程的显示顶端栈结构 ,点击调试器工具栏上的 Show Current Frame 图标  <img src="images/db_toolbar_showframe.gif" align="top">  <!--************************************************************-->
</p>
<a name="choose_stepping_thread"></a>
<h4><font color="#000080" size="2"><b>选择步进的线程(thread to step into)</b></font></h4>
<!--BNDX="threads:choosing for stepping;debugging:choosing stepping thread"-->
<p>要选择步进的线程,</p>
<ol>
<li>在 Threads, call stacks, and data 视图中, 确信显示了所有的线程。 (右击并确信 Show Current Thread Only Right-click 选线被关闭)</li>
<li>选择你要步进的线程。</li>
<li> 右击并选中 Set Stepping Thread 。图标变为  <img src="images/db_thread_step.gif">.</li>
</ol>
<!--************************************************************-->
<a name="keep_thread_suspended"></a>
<h4><b><font size="2" color="#000080">维持线程挂起</font></b></h4>
<!--BNDX="threads:keeping suspended;debugging:keeping thread suspended"-->
<blockquote class="bsku">这是 JBuilder Enterprise 的一个选项。</blockquote>
<p>当调试器被挂起,你准备恢复执行,你可以随意地维持一个线程挂起。这就允许你观察你想观察的线程的行为,而不与其它的线程相冲突。</p>
<p>要恢复程序的执行,选中调试器工具栏上的 Resume Program 图标  <img src="images/db_toolbar_resume.gif" align="top">  。当条时过程被恢复,只有那些不被维持挂起的线程才被恢复。</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -