提交 5dfa4fcb 创建 作者: 宋海霞's avatar 宋海霞

更新 app-manual.md

上级 5ec9f831
...@@ -36,18 +36,18 @@ DS Lab的主窗口布局由下面的若干元素组成: ...@@ -36,18 +36,18 @@ DS Lab的主窗口布局由下面的若干元素组成:
![项目管理器](./img/1.png) ![项目管理器](./img/1.png)
# 阅读实验源代码 # 阅读实验源代码
该实验包含了一个头文件“LinearList.h”和一个C源文件“main.c”。下面对这两个文件的主要内容、结构和作用进行说明: 该实验包含了一个头文件“LinearList.h”和一个C源文件“main.c”。下面对这两个文件的主要内容、结构和作用进行说明:
**main.c文件** **main.c文件**
在“项目管理器”窗口中双击“main.c”打开此文件。此文件主要包含了以下内容: 在“项目管理器”窗口中双击“main.c”打开此文件。此文件主要包含了以下内容:
1. 在文件的开始位置,使用预处理命令“#include "LinearList.h"”,包含了LinearList.h文件。 1. 在文件的开始位置,使用预处理命令“#include "LinearList.h"”,包含了LinearList.h文件。
2. 定义了main函数。在其中实现了线性表的初始化,然后调用了两次线性表的插入函数InsertBefore,第一次调用插入成功,第二次调用插入失败。 2. 定义了main函数。在其中实现了线性表的初始化,然后调用了两次线性表的插入函数InsertBefore,第一次调用插入成功,第二次调用插入失败。
3. 在main函数的后面,定义了线性表的插入函数InsertBefore。关于此函数的功能、参数和返回值,可以参见其注释。注意,此函数的函数体还不完整,留给读者完成。 3. 在main函数的后面,定义了线性表的插入函数InsertBefore。关于此函数的功能、参数和返回值,可以参见其注释。注意,此函数的函数体还不完整,留给读者完成。
**LinearList.h文件** **LinearList.h文件**
在“项目管理器”窗口中双击“LinearList.h”打开此文件。此文件主要包含了以下内容: 在“项目管理器”窗口中双击“LinearList.h”打开此文件。此文件主要包含了以下内容:
1. 包含用到的C标准库头文件。目前只包含了标准输入输出头文件“stdio.h”。 1. 包含用到的C标准库头文件。目前只包含了标准输入输出头文件“stdio.h”。
2. 包含其他模块的头文件。目前没有其他模块的头文件需要被包含。 2. 包含其他模块的头文件。目前没有其他模块的头文件需要被包含。
3. 定义重要的数据结构。定义了与线性表相关的数据结构。 3. 定义重要的数据结构。定义了与线性表相关的数据结构。
4. 声明函数。由于在“main.c”文件中,InsertBefore函数定义在main函数之后,而且在main函数中又调用了InsertBefore函数,所以必须在头文件中声明InsertBefore函数,否则无法通过编译。 4. 声明函数。由于在“main.c”文件中,InsertBefore函数定义在main函数之后,而且在main函数中又调用了InsertBefore函数,所以必须在头文件中声明InsertBefore函数,否则无法通过编译。
> >
...@@ -66,25 +66,26 @@ DS Lab的主窗口布局由下面的若干元素组成: ...@@ -66,25 +66,26 @@ DS Lab的主窗口布局由下面的若干元素组成:
> >
**`提示:`**读者可以通过修改项目名称的方法来修改生成的.exe文件的名称。方法是在“项目管理器”窗口中右键点击项目节点,选择快捷菜单中的“重命名”。待项目名称修改后,需要再次生成项目才能得到新的.exe文件。 **`提示:`**读者可以通过修改项目名称的方法来修改生成的.exe文件的名称。方法是在“项目管理器”窗口中右键点击项目节点,选择快捷菜单中的“重命名”。待项目名称修改后,需要再次生成项目才能得到新的.exe文件。
> >
# 解决语法错误
如果在源代码中存在语法错误,在生成项目的过程中,“输出”窗口会显示相应的错误信息(包括错误所在文件的路径,错误在文件中的位置,以及错误原因),并在生成的最后阶段提示生成失败。此时,在“输出”窗口中双击错误信息所在的行,DS Lab会使用源代码编辑器自动打开错误所在的文件,并定位到错误所在的代码行。 # 解决语法错误
**可以按照下面的步骤进行练习:** 如果在源代码中存在语法错误,在生成项目的过程中,“输出”窗口会显示相应的错误信息(包括错误所在文件的路径,错误在文件中的位置,以及错误原因),并在生成的最后阶段提示生成失败。此时,在“输出”窗口中双击错误信息所在的行,DS Lab会使用源代码编辑器自动打开错误所在的文件,并定位到错误所在的代码行。
1. 在源代码文件中故意输入一些错误的代码(例如删除一个代码行结尾的分号)。 **可以按照下面的步骤进行练习:**
2. 生成项目。 1. 在源代码文件中故意输入一些错误的代码(例如删除一个代码行结尾的分号)。
3. 在“输出”窗口中双击错误信息来定位存在错误的代码行,并将代码修改正确。 2. 生成项目。
4. 重复步骤2、3,直到项目生成成功。 3. 在“输出”窗口中双击错误信息来定位存在错误的代码行,并将代码修改正确。
4. 重复步骤2、3,直到项目生成成功。
# 观察点和演示模式 # 观察点和演示模式
这里介绍DS Lab提供的两个重要功能:观察点和演示模式。 这里介绍DS Lab提供的两个重要功能:观察点和演示模式。
**观察点** **观察点**
一个观察点对应一个函数的起始位置和结束位置(称这个函数为观察点函数)。在调试过程中,当程序执行到观察点函数的起始位置和结束位置时就会发生中断,就好像在这两个位置上添加了断点一样。并且,只要在观察点函数内部发生中断(包括命中断点、单步调试等),就会在“转储信息”窗口中显示观察点函数正在操作的数据信息,如果在“演示模式”下,还会在“演示流程”窗口中显示观察点函数的流程信息。 一个观察点对应一个函数的起始位置和结束位置(称这个函数为观察点函数)。在调试过程中,当程序执行到观察点函数的起始位置和结束位置时就会发生中断,就好像在这两个位置上添加了断点一样。并且,只要在观察点函数内部发生中断(包括命中断点、单步调试等),就会在“转储信息”窗口中显示观察点函数正在操作的数据信息,如果在“演示模式”下,还会在“演示流程”窗口中显示观察点函数的流程信息。
以本实验为例,“观察点”窗口(在“调试”菜单的“窗口”中选择“观察点”,可以打开“观察点”窗口),说明InsertBefore函数是一个观察点函数。 以本实验为例,“观察点”窗口(在“调试”菜单的“窗口”中选择“观察点”,可以打开“观察点”窗口),说明InsertBefore函数是一个观察点函数。
![观察点窗口(未启动调试)](./img/3.png) ![观察点窗口(未启动调试)](./img/3.png)
启动调试后,在main.c文件InsertBefore函数的开始位置和结束位置的左侧空白处,会显示观察点图标(与“观察点”窗口中左侧的图标一致),当程序执行到InsertBefore函数的开始位置和结束位置时会发生中断。启动调试后,观察点窗口可以显示出观察点所在的“文件”和“地址”。 启动调试后,在main.c文件InsertBefore函数的开始位置和结束位置的左侧空白处,会显示观察点图标(与“观察点”窗口中左侧的图标一致),当程序执行到InsertBefore函数的开始位置和结束位置时会发生中断。启动调试后,观察点窗口可以显示出观察点所在的“文件”和“地址”。
![观察点窗口(启动调试)](./img/4.png) ![观察点窗口(启动调试)](./img/4.png)
**演示模式** **演示模式**
当DS Lab工具栏上的“演示模式”按钮高亮显示时,DS Lab处于演示模式。当在演示模式下调试观察点函数时,会忽略掉其函数体中的所有代码和断点,取而代之的是使用DS Lab提供的演示功能对观察点函数的执行过程和返回值进行演示。此特性可使观察点函数在还未完整实现的情况下,让读者了解到其应该具有的功能和执行过程,从而帮助读者正确实现此函数。 当DS Lab工具栏上的“演示模式”按钮高亮显示时,DS Lab处于演示模式。当在演示模式下调试观察点函数时,会忽略掉其函数体中的所有代码和断点,取而代之的是使用DS Lab提供的演示功能对观察点函数的执行过程和返回值进行演示。此特性可使观察点函数在还未完整实现的情况下,让读者了解到其应该具有的功能和执行过程,从而帮助读者正确实现此函数。
![工具栏上的“演示模式”按钮](./img/5.png) ![工具栏上的“演示模式”按钮](./img/5.png)
当工具栏上的“演示模式”按钮没有高亮显示时(鼠标点击工具栏上的“演示模式”按钮可以使其切换状态),DS Lab处于非演示模式。在非演示模式下调试观察点函数时,会使用其函数体中的代码和断点。 当工具栏上的“演示模式”按钮没有高亮显示时(鼠标点击工具栏上的“演示模式”按钮可以使其切换状态),DS Lab处于非演示模式。在非演示模式下调试观察点函数时,会使用其函数体中的代码和断点。
# 在演示模式下调试项目 # 在演示模式下调试项目
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论