⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug2.html

📁 jbuilder教程~!快来下载吧~! 这个很好快来啊~
💻 HTML
📖 第 1 页 / 共 3 页
字号:

<p><span class="bscanwarn">警告:</span> 这可能导致死锁的情况。 </p>     
<p>要维持一个线程的挂起,</p>

<ol>
<li>启动你的程序且用 Pause 图标 &#160;<img src="images/db_toolbar_pause.gif" align="top">暂停调试器。</li>     

<li>在 Threads, call stacks, and data 视图中, 右击你想维持挂起的线程。</li>     

<li>选中 Keep Thread Suspended.</li>     

<li>点击 Resume program 图标 &#160;<img src="images/db_toolbar_resume.gif" align="top">.</li>     

<li>被选的线程将不被恢复。</li>
</ol>

<p>挂起的线程由 &#160; <img src="images/db_thread_suspended.gif" align="top">&#160; 图标指明。 <!--************************************************************--></p>     


<a name="detecting_deadlock"></a>
<h4><b><font color="#000080" size="2">探测死锁状态</font></b></h4>
<!--BNDX="threads:detecting deadlocks;debugging:detecting deadlocks;deadlocks"-->
<blockquote class="bsku">探测死锁线程的功能是 JBuilder Enterprise 的一线属性。</blockquote>     


<p>使用<a href="debug.html">Synchronization monitors 视图</a>来探测死锁的线程。你可以使用这个视图来严密观察什么线程在等待什么监视器。 </p>     
<p>在这个视图中,每一个监视器显示了拥有这个监视器的线程以及正等待得到它的线程(若有的话)。当一个监视器处于死锁状态的时候,好几个线程都尝试着得到它。然而,这个监视器不会被释放掉,因为拥有它的线程正在等另一个监视器被释放掉。</p>

<p>如果你在此视图中展开每个监视器,你将看到所有在等它的线程以及拥有它的线程。注意:这个视图中的图标只是显示了线程是否是当前活动的线程。每一个线程可以被展开显示它当前的栈,就象在Threads, call stacks, and data 视图中一样。</p>     

<p>在下面的例子中,线程1和2含有等待线程。线程4,3,和1正在等待线程2;线程2是拥有者 - &quot;monitor2&quot; 是线程对象的名字。线程4是当前的步进线程。</p>     

<p class="bfig">Synchronization monitors 视图</p>     

<p><img src="images/db_sync_monitors_view.gif"> <!--************************************************************-->
</p>



<a name="moving_through_code"></a>
<h3><b><font size="2" color="#000080">Moving through code在代码中移动(move)</font></b></h3>     
<!--BNDX="debugging:moving through code"-->
<p><a href="../ui/menus/mrun.html">Run|Step Into</a> 和 <a href="../ui/menus/mrun.html">Run|Step Over</a> 命令提供了在你的程序代码中移动的最简单方法。尽管这两个命令非常相似,它们各自提供了一个不同的方法来控制代码的执行。 </p>     
<p><span class="bscan">注意:</span> 你也可以使用调试器工具栏的 Step Into &#160;<img src="images/db_toolbar_stepinto.gif" align="top">&#160; 或 Step Over &#160;<img src="images/db_toolbar_stepover.gif" align="top">&#160; 。 </p>     

<p>你在程序中步进的最小增量是一个单一的代码行。文本行中的多个程序声明被当作一个单一代码行对待;你不能单独地调试包含在单一文本行中的多个声明。最简单的方法就是把每一个声明放在单独的一行。一个扩展成几行的单一声明被当作一个单一的代码行对待。</p>

<p>当你调试时,你可以 step into 一些方法,step over 另外一些方法。如果你确信一个方法执行是正确的,那么你可以 step over 那个方法的调用 - 知道那个方法的调用不会导致错误。如果你不能确信那个方法是正确的,step into 那个方法并检查它执行是否正确。你应该 step over JBuilder 或第三方供应商提供的库中的方法。这样将显著地加快你的调试周期。     
<!--************************************************************-->
</p>



<a name="step_into"></a>
<h4><font color="#000080" size="2"><b>Stepping into 一个方法调用</b></font></h4>     
<!--BNDX="debugging:stepping into method calls;stepping:into method calls;Smart Step;stepping:smart"-->
<p> <a href="../ui/menus/mrun.html">Run|Step Into</a>命令一次执行一个单一的程序声明。如果 <a href="#smart_step">Smart Step</a>打开,<a href="debug.html">Classes with tracing disabled 视图</a>中被标记为跟踪禁止的类将不会被 stepped into 。当 Smart Step 关闭,将忽视 Classes with tracing disabled 视图中的类,所以你将可以 step into 所有这些类。 </p>     
<p>如果执行点被定位在一个方法的调用上,Step Into 命令 steps into 那个方法并把执行点放置在那个方法的第一个声明上。随后的 Step Into 命令将一次一行地执行这个方法的代码。</p>     

<p>如果执行点位于一个方法的最后一个声明上,Step Into 使调试器从那个方法中返回,并将执行点放置在从那个方法中返回的调用的接下来的一行代码。</p>     

<p>The term &quot;single-stepping&quot; refers to using Step Into to successively run though the statements in your program code.     
术语 &quot;single-stepping&quot; </p>     

<p>有好几种方法来使用 Step Into 命令:</p>     

<ul>
<li>选中 Run|Step Into.</li>     

<li>按下 <kbd>F7</kbd>.</li>     

<li>点击调试器工具栏上的 Step Into 图标 &#160;<img src="images/db_toolbar_stepinto.gif" align="top">&#160; </li>     
</ul>

<!--************************************************************-->


<a name="step_over"></a>
<h4><b><font color="#000080" size="2">Stepping over a method call</font></b></h4>     
<!--BNDX="debugging:stepping into method calls;stepping:over method calls"-->
<p>就象 Run|Step Into 一样,<a href="../ui/menus/mrun.html">Run|Step Over</a>命令使你一次一行地执行你的程序声明。然而,当执行点位于一个方法调用上时你使用 Step Over 命令,调试器不中断地运行步那个方法(而不是 stepping into 这个方法),然后,将执行点放置在那个方法调用接下来的那行声明上。</p>     
<p>有好几种方法来使用 Step Over 命令:</p>     

<ul>
<li>选中 Run|Step Over.</li>     

<li>按下 <kbd>F8</kbd>.</li>     

<li>点击调试器工具栏上的 Step Over 图标 &#160;<img src="images/db_toolbar_stepover.gif" align="top">&#160; </li>     
</ul>

<!--************************************************************-->


<a name="step_out"></a>
<h4><b><font color="#000080" size="2">Stepping out 一个方法</font></b></h4>     
<!--BNDX="debugging:stepping out of a method;stepping:out of a method;Smart Step"-->
<p><a href="../ui/menus/mrun.html">Run|Step Out</a> 命令让你从一个方法中出来(step out)回到调用程序中。 </p>     
<p>如果 Smart Step打开,<a href="debug.html">Classes with tracing disabled 视图</a>中被标记为跟踪禁止的类将不会被访问(stop in) 。</p>     

<p>有好几种方法来使用 Step Out 命令:</p>     

<ul>
<li>选中 Run|Step Out.</li>     

<li>点击调试器工具栏上的 Step Out 图标&#160;<img src="images/db_toolbar_stepout.gif" align="top">&#160; </li>     
</ul>

<!--************************************************************-->


<a name="smart_step"></a>
<h4><b><font color="#000080" size="2">使用 Smart Step</font></b></h4>     
<!--BNDX="debugging:smart step;Smart Step;Smart Step:options;stepping:smart"-->
<blockquote class="bsku">这是 JBuilder Professional and Enterprise 的一项属性。</blockquote>     


<p>Smart Step 允许你决定是否每一步是 &quot;smart&quot; 还是不是。</p>     

<p>当这个属性打开,每一步操作使用在<a href="debug.html">Classes with tracing disabled 视图</a>中列出的类以及在  Project Properties 对话框中<a href="../ui/dialogs/dlgdebugpage.html">Debug 页</a>上的 Smart Step 选项:     
</p>

<ul>
<li>Classes with tracing disabled 视图允许你设置什么类将不被跟踪进。 <span class="bsku">这是 JBuilder Professional and Enterprise 的一项属性。</span></li>     

<li>Project Properties 对话框 Debug页上的 Smart Step 选项为每一个被跟踪进的类控制步进行为。这些选项为:     

<dl>
<dt>Skip synthetic methods</dt>     

<dd>当 stepping into 类里时,跳过合成(synthetic)方法。</dd>     

<dt>Skip constructors</dt>     

<dd>当 stepping into 类里时,跳过构造器。</dd>     

<dt>Skip static initializers</dt>     

<dd>当 stepping into 类里时,跳过静态初始化。</dd>     

<dt>Warn if break in class with tracing disabled</dt>     

<dd>当一个被禁止跟踪的类里有一个断点,显示一条警告消息。更多信息,参考 <a href="#setting_a_breakpoint_in_a_class_overrides_tracing_disabled">&quot;Breakpoints and tracing disabled settings.&quot;</a></dd>     
</dl>
</li>
</ul>

<p>当 Smart Step 被关闭,Classes with tracing disabled 视图中的类连同 Smart Step 选项就被忽略掉了,所以你将可能 step into 所有这些类。</p>     

<p>默认情况下,当你开始一次调试过程, Smart Step 是打开的。</p>     

<ul>
<li>若要为当前调试过程关闭 Smart Step,点击调试器工具栏上的 Smart Step 图标 &#160;<img src="images/db_toolbar_smartstep.gif" align="top">&#160; 。要为整个工程关闭它,关闭 Project Properties 对话框 Debug页上的 Enable Smart Step 选项。</li>     

<li>调试器工具栏上的 Smart Step 图标变暗说明了 Smart Step 被关闭。为了重新打开 Smart Step,点击这个图标或者设置 Project Properties 对话框 Debug页上的 Enable Smart Step 选项。  </li>     
</ul>

<!--************************************************************-->


<a name="running_to_a_breakpoint"></a>
<h3><font color="#000080" size="2"><b>运行到一个断点</b></font></h3>
<!--BNDX="breakpoints:running to;debugging:running to a breakpoint"-->
<p>程序运行期间,在你想要程序执行中止的源代码行上设置断点。运行到一个断点同运行到一个光标位置是相似的 - 程序一直运行到某一源代码位置而不中断。</p>     
<p>在你的代码中可你有多个断点。你可以定制每一个断点从而只有当一定的条件发生时中断程序的执行。</p>

<p>关于断点的更多信息,参阅<a href="debug3.html">&quot;Using breakpoints.&quot;</a> <!--************************************************************-->     
</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -