1、vc+6.0 调 试 详 细 教 程Step intoStep overStep outRun tocursorWatchVariablesRegistersMemoryStop DebugCall stackDisassemblyRestart Debugger2、 调 试 的 一 般 过 程调 试 , 就 是 在 程 序 的 运 行 过 程 的 某 一 阶 段 观 测 程 序 的 状 态 。 在 一 般 情 况 下 程 序 是 连 续 运 行 的 ,所 以 我 们 必 须 使 程 序 在 某 一 地 点 停 下 来 。 我 们 所 做 的 第 一 项 工 作 就 是 设 立 断 点 ; 其
2、 次 再 运 行程 序 ; 当 程 序 在 设 立 断 点 处 停 下 来 时 , 利 用 各 种 工 具 观 察 程 序 的 状 态 。程 序 在 断 点 停 下 来 后 , 有 时 我 们 需 要 按 我 们 的 要 求 控 制 程 序 的 运 行 , 以 进 一 步 观 测 程序 的 流 向 。下 面 我 们 依 次 来 介 绍 断 点 的 设 置 , 如 何 控 制 程 序 的 运 行 以 及 各 种 观 察 工 具 的 利 用 。3、 设 置 断 点在 VC中 , 可 以 设 置 多 种 类 型 的 断 点 , 根 据 断 点 起 作 用 的 方 式 把 这 些 断 点 分 为 三
3、类 :1、 与 位 置 有 关 的 断 点 ;2、 与 逻 辑 条 件 有 关 的 断 点3、 与 WINDOWS消 息 有 关 的 断 点 。主 要 介 绍 前 面 两 种 断 点 。4、 设 置 位 置 断 点最 简 单 的 是 设 置 一 般 位 置 断 点 : 把 光 标 移 到 你 要 设 断 点 的 位 置 , 当 然 这 一 行 必 须 包 含 一 条 有 效 语 句 的 ; 然 后 按 工 具 条 上 的 add/remove breakpoint 按 钮 或 按 快 捷 键 F9。将 会 在 屏 幕 上 看 到 在 这 一 行 的 左 边 出 现 一 个 红 色 的 圆 点
4、表 示 这 里 设 立 了 一 个 断 点5、 设 置 位 置 断 点 图 示6、 设 置 逻 辑 断 点有 的 时 候 可 能 不 需 要 程 序 每 次 运 行 到 这 儿 都 停 下 来 , 而 是 在 满 足 一 定 条 件 的 情 况 下 才 停 下来 , 这 时 就 需 要 设 置 一 种 与 位 置 有 关 的 逻 辑 断 点 。从 EDIT 菜 单 中 选 中 Breakpoints 命 令 , 这 时 Breakpoints对 话 框 将 会 出 现 在 屏 幕 上 。选 中 Breakpoint 对 话 框 中 的 Location 标 签 , 使 Location 页 面
5、 弹 出 。如 下 页 图 所 示 。7、8、 设 置 逻 辑 断 点单 击 上 页 Condition 按 钮 , 弹 出 Breakpoint Condition 对 话 框 , 在 expression_r编辑 框 中 写 出 你 的 逻 辑 表 达 式 , 最 后 按 OK 返 回 。这 种 断 点 主 要 是 由 其 位 置 发 生 作 用 的 , 但 也 结 合 了 逻 辑 条 件 , 使 之 更 灵 活 。9、 控 制 程 序 的 运 行上 面 我 们 讲 了 如 何 设 置 各 类 断 点 , 下 面 我 们 来 介 绍 如 何 控 制 程 序 的 运 行 。 当 我 们 从
6、菜 单Build到 子 菜 单 StartDebug 选 择 Go, 程 序 开 始 运 行 在 Debug状 态 下 , 程 序 会 由 于 断 点 而 停顿 下 来 后 , 可 以 看 到 有 一 个 小 箭 头 , 它 指 向 即 将 执 行 的 代 码 。10、 控 制 程 序 的 运 行随 后 , 我 们 就 可 以 按 要 求 来 控 制 程 序 的 运 行 : 其 中 有 四 条 命 令 : Step over Step Into Step Out Run to Cursor Step over : 运 行 当 前 箭 头 指 向 的 代 码 (只 运 行 一 条 代 码 );
7、Step Into : 如 果 当 前 箭 头 所 指 的 代 码 有 函 数 的 调 用 , 则 用 Step Into 进入 该 函 数 进 行 单 步 执 行 ; Step Out: 如 当 前 箭 头 所 指 向 的 代 码 是 在 某 一 函 数 内 , 用 它 使 程 序 运 行 至 函 数返 回 处 ; Run to Cursor: 使 程 序 运 行 至 光 标 所 指 的 代 码 处 。11、 查 看 工 具 的 使 用调 试 过 程 中 最 重 要 的 是 要 观 察 程 序 在 运 行 过 程 中 的 状 态 , 这 样 我 们 才 能 找 出 程 序 的 错 误 之处
8、。 这 里 所 说 的 状 态 包 括 各 变 量 的 值 、 寄 存 器 中 的 值 、 内 存 器 中 的 值 、 堆 栈 中 的 值 , 为 此 我们 需 要 利 用 各 种 工 具 来 帮 助 我 们 察 看 程 序 的 状 态 。12、 查 看 工 具 的 使 用 弹 出 式 调 试 信 息 泡 泡 (Data Tips Pop_up Information)。当 程 序 在 断 点 停 下 来 后 , 要 观 察 一 个 变 量 或 表 达 式 的 值 的 最 容 易 的 方 法 是 利 用 调 试 信 息泡 泡 。 要 看 一 个 变 量 的 值 , 只 需 在 源 程 序 窗
9、口 中 , 将 鼠 标 放 到 该 变 量 上 , 你 将 会 看 到 一 个 信息 泡 泡 弹 出 , 其 中 显 示 出 该 变 量 的 值 。13、 查 看 工 具 的 使 用 变 量 窗 口 变 量 窗 口 (VARIABLE WINDOW)。在 View 菜 单 , Debug Windows选 Variables; 变 量 窗 口 将 出 现 在 屏 幕 上 。 其 中 显 示 着 变量 名 及 其 对 应 的 值 。 你 将 会 看 到 在 变 量 观 察 窗 口 的 下 部 有 三 个 标 签 : Auto , Locals, this 选中 不 同 的 标 签 , 不 同 类
10、 型 的 变 量 将 会 显 示 在 该 窗 口 中 。14、 观 察 窗 口 (WATCH WINDOW)在 View 菜 单 , 选 择 Debug Windows 命 令 的 Watch 子 命 令 。 这 时 观 察 窗 口 将 出 现 在 屏 幕上 。15、在 上 图 的 观 察 窗 口 中 双 击 Name 栏 的 某 一 空 行 , 输 入 你 要 查 看 的 变 量 名 或 表 达 式 ;回 车 后 你 将 会 看 到 对 应 的 值 。16、 查 看 工 具 的 使 用观 察 窗 口 可 有 多 页 , 分 别 对 应 于 标 签 Watch1,Watch2,Watch3 和 Watch4。 假 如 你 输 入 的 表 达式 是 一 个 结 构 或 是 一 个 对 象 , 你 可 以 用 鼠 标 点 取 表 达 式 右 边 的 形 如 + , 以 进 一 步 观 察 其 中的 成 员 变 量 的 值 。