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

📄 第五课 调 试.htm

📁 ADS是一种嵌入式常用开发语言
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0057)http://www.pdazone.com.cn/develop/CodeWarrior/Lesson5.htm -->
<HTML><HEAD><TITLE>PDA开发</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=Content-Language content=zh-cn>
<STYLE type=text/css>.font {
	FONT-SIZE: 10pt; LINE-HEIGHT: 13pt
}
.fontlittle {
	FONT-SIZE: 9pt
}
A {
	TEXT-TRANSFORM: none; TEXT-DECORATION: none
}
A:hover {
	TEXT-DECORATION: underline
}
</STYLE>

<META content="MSHTML 6.00.2462.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY>
<DIV align=center>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width=650 border=0>
  <TBODY>
  <TR align=middle>
    <TD align=right width="100%"><IMG height=35 
      src="第五课        调     试.files/develop.gif" width=648 border=0> </TD></TR>
  <TR align=middle>
    <TD align=right width="100%"></TD></TR>
  <TR align=middle>
    <TD width="100%"><IMG height=5 src="" width=2 border=0> </TD></TR>
  <TR align=middle>
    <TD class=font width="100%">
      <P align=left>><A href="http://www.pdazone.com.cn/" 
      target=_parent>首页</A>>PDA开发 </P></TD></TR>
  <TR align=middle>
    <TD width="100%"><IMG height=5 src="" width=2 border=0> </TD></TR>
  <TR align=middle>
    <TD width="100%">
      <P align=center><SMALL>CodeWarrior 使用教程</SMALL></P></TD></TR>
  <TR>
    <TD width="100%">
      <P align=center><FONT size=3><B>第五课</B><FONT 
      face="Arial, Helvetica, sans-serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      </FONT><STRONG>调 &nbsp;&nbsp;&nbsp; 试</STRONG></FONT></P></TD></TR>
  <TR align=middle>
    <TD class=font width="100%">
      <P align=center>Translated from <STRONG><FONT 
      face=Arial>CodeWarriorU.COM</FONT></STRONG></P>
      <P align=center> </P>
      <P align=center><BR></P></TD></TR>
  <TR>
    <TD width="100%">
      <DIV align=center>
      <CENTER>
      <TABLE cellSpacing=0 cellPadding=0 width="88%" border=0>
        <TBODY>
        <TR>
          <TD class=font width="100%"><FONT face=幼圆 color=#000000 
            size=3><B><B>关于调试</B></B></FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>
            <BLOCKQUOTE><I>
              <P>Purging pesky pests proves productive for programmers!</I> 
              </FONT></P></BLOCKQUOTE>
            <P><FONT face="Arial, Helvetica, sans-serif" 
            size=2>&nbsp;&nbsp;&nbsp; </FONT><FONT 
            size=2>调试就是在你的程序代码中找到一个问题并着手去解决它的过程。不管是谁,在编程时都难免出现一些输入或程序逻辑上的错误,一旦出现这种问题,很可能你想破了头也找不到错误在哪。这个问题可能只是一个输入上的小错误或者只是一个变量用错了,因此你很难发现它。但是因为这个错误的存在使得你的程序无法实现预期的功能。有时候会更糟糕,以致你的机器都崩溃了。这时,你就必须借助调试来解决问题。</FONT></P>
            <P><FONT face="Arial, Helvetica, sans-serif" 
            size=2>&nbsp;&nbsp;&nbsp; CodeWarrior </FONT><FONT 
            size=2>带有一个集成的调试器,可以让你在 </FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>CodeWarrior </FONT><FONT 
            size=2>主窗口中打开一个窗口来进行调试工作。使用调试器的方法是,从工程菜单中选择 </FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>Enable Debugger 
            </FONT><FONT 
            size=2>项,然后重新编译你的目标文件。完成上述步骤后,你的程序就会在调试窗口中运行,此时你就可以隔离并改正你找到的任何一个问题了。</FONT></P>
            <P><FONT face="Arial, Helvetica, sans-serif" 
            size=2>&nbsp;&nbsp;&nbsp; </FONT><FONT 
            size=2>通常进行调试时总要生成源程序的一个调试目标文件。该目标文件的源文件保持不变,但是需要预先设置置一些选项才能产生该程序的调试版本。通过点击工程窗口的弹出菜单中的调试目标文件,你就可以进入调试状态。</FONT></P><FONT 
            face="Arial, Helvetica, sans-serif" size=2>
            <DIV align=center>
            <CENTER>
            <TABLE cellSpacing=0 cellPadding=0 border=0>
              <TBODY></FONT>
              <TR>
                <TD><FONT size=2><IMG height=484 
                  alt="Figure 5-1: The debugger does its thing." 
                  src="第五课        调     试.files/icwwL5_fig1.gif" width=542 
                  align=left> </FONT></TD></TR>
              <TR>
                <TD align=middle>
                  <P align=center><I><FONT size=1>图 </FONT><FONT 
                  face="Arial, Helvetica, sans-serif" size=1>5-1: </FONT><FONT 
                  size=1>调试器界面</FONT></I></P></TD></TR></TBODY></TABLE></CENTER></DIV>
            <P><FONT face="Arial, Helvetica, sans-serif" 
            size=2>&nbsp;&nbsp;&nbsp; </FONT><FONT size=2>图 </FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>5-1</FONT><FONT 
            size=2>显示了 </FONT><FONT face="Arial, Helvetica, sans-serif" 
            size=2>Hello World </FONT><FONT size=2>这个程序在 </FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>CodeWarrior </FONT><FONT 
            size=2>调试器中进行调试时的情况。为了能够更方便地演示调试器的工作过程,我们在程序中添加了一小段循环代码</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>(</FONT><FONT 
            size=2>其中使用了 </FONT><FONT face="Arial, Helvetica, sans-serif" 
            size=2>i</FONT><FONT size=2>、</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>x </FONT><FONT size=2>和 
            </FONT><FONT face="Arial, Helvetica, sans-serif" size=2>y 
            </FONT><FONT size=2>等三个变量</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>)</FONT><FONT 
            size=2>。调试器允许对代码执行单步逐行调试。当你在代码中移动时,你还可以查看程序中所有变量的值。在这种“慢速移动</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>(slow motion)</FONT><FONT 
            size=2>”的方式下调试程序,你可以非常清晰地查看到代码的运行情况并很容易地解决问题。</FONT></P>
            <BLOCKQUOTE>
              <P><EM><FONT 
              size=2>但实际情况是,不是所有的问题都很容易解决的。有些问题就有可能要花费你长达数周的时间去解决。不管是经验多么丰富的编程老手,同样不可避免地要遇到这样的问题。作为一个初学者,你更容易遇到这样的问题,但是,你千万别被这种情况吓倒。请记住,从错误中学习,你能学到更多的东西。</FONT></EM></P></BLOCKQUOTE>
            <P><FONT face="Arial, Helvetica, sans-serif" 
            size=2>&nbsp;&nbsp;&nbsp; </FONT><FONT 
            size=2>请注意在调试器窗口左上角的那些按钮,它们是用于帮助你进行调试工作的。这些按钮从左到右分别是:运行程序</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>(Run Program)</FONT><FONT 
            size=2>、停止</FONT><FONT face="Arial, Helvetica, sans-serif" 
            size=2>(Stop)</FONT><FONT size=2>、退出</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>(Kill (Quit))</FONT><FONT 
            size=2>、跳过</FONT><FONT face="Arial, Helvetica, sans-serif" 
            size=2>(Step Over)</FONT><FONT size=2>、转入</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>(Step Into)</FONT><FONT 
            size=2>和转出</FONT><FONT face="Arial, Helvetica, sans-serif" 
            size=2>(Step Out)</FONT><FONT 
            size=2>。最后两个命令按钮是让你决定在单步调试程序时,如果遇到一个函数,是否要进入函数内部进行代码调试。或者你也可以使用跳过</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>(Step Over)</FONT><FONT 
            size=2>命令让该函数一次执行完毕,而不进入函数体中单步调试函数的代码,这样可以节省一些时间。如果你不能肯定函数是否正确无误,那么你可以转入</FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>(step into)</FONT><FONT 
            size=2>该函数体内部对其进行单步调试。对于初学者,你应该单步调试每一个函数,至少可以练练手嘛! </FONT></P>
            <P><FONT face="Arial, Helvetica, sans-serif" 
            size=2>&nbsp;&nbsp;&nbsp; </FONT><FONT size=2>图 </FONT><FONT 
            face="Arial, Helvetica, sans-serif" size=2>5-1 </FONT><FONT 
            size=2>所示的调试窗口包含三个主要部分:</FONT>
            <UL>
              <LI><B><FONT size=2>栈窗格</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>(The Stack 
              pane)</FONT><FONT size=2>:</B>位于左上方的窗格是显示调用栈</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>(</FONT><FONT 
              size=2>也叫做调用栈的记录</FONT><FONT face="Arial, Helvetica, sans-serif" 
              size=2>)</FONT><FONT 
              size=2>的区域。当你在单步调试源码的过程中调用了多个函数时,在这个区域就显示出调试到达当前状态之前调用过的函数名清单。这个清单会随着你的调试过程,根据你是否转入函数内部的情况随时增减; 
              </FONT>
              <LI><B><FONT size=2>变量窗格</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>(The Variables 
              pane):</B>&nbsp; </FONT><FONT 
              size=2>位于右上方的窗格是显示变量名和其值的区域。其中显示的是各个变量的名字和它们的值,而且还可以依据变量的类型让你查看</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>(</FONT><FONT 
              size=2>或修改</FONT><FONT face="Arial, Helvetica, sans-serif" 
              size=2>)</FONT><FONT size=2>这些数据。在图</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>5-1</FONT><FONT 
              size=2>中显示的 </FONT><FONT face="Arial, Helvetica, sans-serif" 
              size=2>Hello World x86 </FONT><FONT 
              size=2>程序这个例子中,有四个变量:</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>c</FONT><FONT 
              size=2>,</FONT><FONT face="Arial, Helvetica, sans-serif" 
              size=2>i</FONT><FONT size=2>,</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>x </FONT><FONT size=2>和 
              </FONT><FONT face="Arial, Helvetica, sans-serif" 
              size=2>y</FONT><FONT 
              size=2>。当你在代码中执行单步调试时,这些变量的值就会根据程序执行的过程实时地更新。例如,在调试过程中,你可以注意到后三个变量是如何取得它们的值的</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>(</FONT><FONT 
              size=2>这些值是在循环代码中赋给这些变量的</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>)</FONT><FONT 
              size=2>,而变量 </FONT><FONT face="Arial, Helvetica, sans-serif" 
              size=2>c </FONT><FONT size=2>显示的是一个无意义的值</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>(</FONT><FONT 
              size=2>因为你还没有给 </FONT><FONT face="Arial, Helvetica, sans-serif" 
              size=2>getchar() </FONT><FONT size=2>输入任何值</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>)</FONT><FONT 
              size=2>。你可以使用这个窗格来发现不正常的变量值,从而发现程序设计上的错误这对于程序的调试成功,非常关键;</FONT> 
              <LI><B><FONT size=2>源代码窗格</FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>(The Source 
              pane)</FONT><FONT size=2>:</B>位于下方的窗格显示了 </FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>Hello World x86 
              </FONT><FONT size=2>这个程序的 </FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>C </FONT><FONT 
              size=2>语言源代码,它也可以用来显示该代码的汇编语言版本。随着调试的深入进行,仅仅是程序的 </FONT><FONT 
              face="Arial, Helvetica, sans-serif" size=2>C </FONT><FONT 
              size=2>语言代码可能不能提供足够的调试信息,这是你就需要查看该程序的汇编语言代码。你可以通过该窗口下端的弹出菜单来选择查看程序的源代码、汇编代码或者两者的混合显示。 
              </FONT></LI></UL>

⌨️ 快捷键说明

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