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

📄 book_text11.htm

📁 深入编程内幕vc++ 非常适合处学者学习
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0063)http://www1.ustc.edu.cn/personal/csli/insidec++/book_text11.htm -->
<HTML><HEAD><TITLE>Visual C++</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2995" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId><LINK 
href="book_text11.files/style.css" type=text/css rel=stylesheet></HEAD>
<BODY bgColor=#f7fbff leftMargin=0 topMargin=0>
<TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD width="3%" background=book_text11.files/page_side.gif 
    height="100%"> </TD>
    <TD vAlign=top align=middle width="97%">
      <P 
      style="mso-line-height-alt: 1.3pt; tab-stops: right dotted 402.1pt"><SPAN 
      lang=EN-US 
      style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt"></O:P></SPAN></P>
      <TABLE height=23 width="99%" border=0>
        <TBODY>
        <TR>
          <TD width="2%" height=29></TD>
          <TD width="95%" height=29><PRE><A name=_Toc419881649><SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: Times New Roman; mso-bookmark: _Toc419740467">四、<SPAN lang=EN-US>VC程序调试</SPAN></SPAN></A></PRE></TD>
          <TD width="3%" height=29></TD></TR>
        <TR>
          <TD width="2%" height=15></TD>
          <TD width="95%" height=15>
            <P class=MsoNormal 
            style="TEXT-INDENT: 27pt; mso-line-height-alt: 1.3pt"><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">在开发程序的过程中,经常需要查找程序中的错误,这就需要利用调试工具来帮助你进行程序的调试,当然目前有许多调试工具,而集成在<SPAN 
            lang=EN-US>VC中的调试工具以其强大的功能,一定使你爱不释手。下面我们先来介绍VC中的调试工具的使用。</SPAN></SPAN></P>
            <P class=MsoNormal 
            style="mso-line-height-alt: 1.3pt; mso-outline-level: 1"><B 
            style="mso-bidi-font-weight: normal"><SPAN lang=EN-US 
            style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">1 
            </SPAN><SPAN lang=EN-US 
            style="FONT-SIZE: 16pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: Times New Roman; mso-spacerun: yes">&nbsp;</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">VC调试工具</SPAN><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 16pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'"><O:P> 
            </O:P></SPAN></B></P>
            <H3 style="mso-line-height-alt: 1.3pt"><A name=_Toc419881650><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: Times New Roman; mso-bookmark: _Toc419740468">1.1 
            调试环境的建立</SPAN></A><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'"><O:P> 
            </O:P></SPAN></H3>
            <P class=MsoNormal style="mso-line-height-alt: 1.3pt"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: Times New Roman; mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">在<SPAN 
            lang=EN-US>VC中每当建立一个工程(Project)时,VC都会自动建立两个版本:Release版本,和Debug版本,正如其字面意思所说的,Release版本是当程序完成后,准备发行时用来编译的版本,而Debug版本是用在开发过程中进行调试时所用的版本。<O:P> 
            </O:P></SPAN></SPAN></P>
            <P class=MsoNormal style="mso-line-height-alt: 1.3pt"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'"><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>DEBUG 
            版本当中,包含着MICROSOFT 格式的调试信息,不进行任何代码优化,而在RELEASE 
            版本对可执行程序的二进制代码进行了优化,但是其中不包含任何的调试信息。<O:P> </O:P></SPAN></P>
            <P class=MsoNormal 
            style="TEXT-INDENT: 24pt; mso-line-height-alt: 1.3pt"><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">在新建立的工程中,你所看到是<SPAN 
            lang=EN-US>DEBUG版本,若要选择RELEASE版本,可以选择菜单PROJECT中的SETTING命令,这时屏幕上面弹出PROJECT 
            SETTEING 对话框,在SETTING 
            FOR下拉列表中选择RELEASE,按OK退出,如图4.1。</SPAN></SPAN></P>
            <P class=MsoNormal 
            style="TEXT-INDENT: 24pt; mso-line-height-alt: 1.3pt" 
            align=center><SPAN 
            style="mso-bidi-font-size: 10.0pt; mso-hansi-font-family: Times New Roman"><BR></SPAN><SPAN 
            lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><IMG 
            height=189 src="book_text11.files/book_t1.gif" width=287 
            v:shapes="_x0000_i1025"></SPAN><SPAN 
            style="mso-bidi-font-size: 10.0pt; mso-hansi-font-family: Times New Roman"><BR>图<SPAN 
            lang=EN-US>4.1</SPAN></SPAN><SPAN lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'"><O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="TEXT-INDENT: 24pt; mso-line-height-alt: 1.3pt"><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">在调试程序的时候必须使用<SPAN 
            lang=EN-US>DEBUG版本,我们可以在Project Setting 
            对话框的C/C++页中设置调试选项。</SPAN></SPAN></P>
            <P align=center><SPAN style="mso-ignore: vglayout"><IMG height=239 
            src="book_text11.files/book_t2.gif" width=362 
            v:shapes="_x0000_s1026"></SPAN><BR><SPAN lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">图4.2<O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="TEXT-INDENT: 24pt; mso-line-height-alt: 1.3pt"><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">各个选项的含意如下:<SPAN 
            lang=EN-US><O:P> </O:P></SPAN></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN-LEFT: 42pt; TEXT-INDENT: -18pt; mso-line-height-alt: 1.3pt; tab-stops: list 42.0pt; mso-list: l17 level1 lfo106"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.0pt">·<SPAN 
            style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN></SPAN><SPAN lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">Program 
            Database表示产生一个存储程序信息的数据文件(.PDB),它包含了类型信息和符号化的调试信息;<O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN-LEFT: 42pt; TEXT-INDENT: -18pt; mso-line-height-alt: 1.3pt; tab-stops: list 42.0pt; mso-list: l102 level1 lfo107"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.0pt">·<SPAN 
            style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN></SPAN><SPAN lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">Line 
            Numbers Only表示程序经过编译和链接产生的.OBJ或.EXE文件仅仅包含全局和外部符号以及行号信息;<O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN-LEFT: 42pt; TEXT-INDENT: -18pt; mso-line-height-alt: 1.3pt; tab-stops: list 42.0pt; mso-list: l15 level1 lfo108"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.0pt">·<SPAN 
            style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN></SPAN><SPAN lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">C7 
            Compatible表示产生一个.OBJ或.EXE文件行号信息以及符号化的调试信息;<O:P> </O:P></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN-LEFT: 42pt; TEXT-INDENT: -18pt; mso-line-height-alt: 1.3pt; tab-stops: list 42.0pt; mso-list: l105 level1 lfo109"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.0pt">·<SPAN 
            style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN></SPAN><SPAN lang=EN-US 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">None表示不产生任何调试信息。<O:P> 
            </O:P></SPAN></P>
            <P class=MsoNormal 
            style="TEXT-INDENT: 24pt; mso-line-height-alt: 1.3pt"><B 
            style="mso-bidi-font-weight: normal"><SPAN lang=EN-US 
            style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">&nbsp;<O:P> 
            </O:P></SPAN></B></P>
            <H3 style="mso-line-height-alt: 1.3pt"><A name=_Toc419881651><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: Times New Roman; mso-bookmark: _Toc419740469">1.2调试的一般过程</SPAN></A><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'"><O:P> 
            </O:P></SPAN></H3>
            <P class=MsoNormal 
            style="TEXT-INDENT: 20pt; mso-line-height-alt: 1.3pt"><SPAN 
            style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">调试,说到底就是在程序的运行过程的某一阶段观测程序的状态<SPAN 
            lang=EN-US>,而在一般情况下程序是连续运行的,所以我们必须使程序在某一地点停下来。所以我们所做的第一项工作就是设立断点。其次,再运行程序,当程序在设立断点处停下来时,再利用各种工具观察程序的状态。程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的流向,所以下面我们依次来介绍断点的设置,如何控制程序的运行以及各种观察工具的利用。<O:P> 
            </O:P></SPAN></SPAN></P>
            <P class=MsoNormal 
            style="TEXT-INDENT: 27pt; mso-line-height-alt: 1.3pt"><SPAN 
            lang=EN-US 
            style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">&nbsp;<O:P> 
            </O:P></SPAN></P>
            <H3 style="mso-line-height-alt: 1.3pt"><A name=_Toc419881652><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: Times New Roman; mso-bookmark: _Toc419740470">1.3 
            如何设置断点</SPAN></A><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'"><O:P> 
            </O:P></SPAN></H3>
            <P style="TEXT-INDENT: 21pt; mso-line-height-alt: 1.3pt"><SPAN 
            style="mso-bidi-font-size: 10.0pt; mso-hansi-font-family: Times New Roman">在<SPAN 
            lang=EN-US>VC中,你可以设置多种类型的断点,我们可以根据断点起作用的方式把这些断点分为三类:1、与位置有关的断点;2、与逻辑条件有关的断点3、与WINDOWS消息有关的断点下面我们分别介绍这三类断点。<O:P> 

⌨️ 快捷键说明

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