调试 C/C++ 项目教程

下面的简明教程将为您介绍 NetBeans IDE 7.2 中用于调试 C 或 C++ 项目的一些功能。

目录

此页上的内容适用于 NetBeans IDE 7.2
- 要求
- 创建样例项目
- 创建断点
- 启动调试会话
- 检查应用程序状态

要求

要学习本教程,您需要具备以下软件和资源。

软件或资源 要求的版本
NetBeans IDE 带有 NetBeans C/C++ 插件模块的版本 7.2
Java 开发者工具包 (JDK) 版本 7

有关下载并安装必需软件的信息,请参见 NetBeans IDE 7.2 安装说明配置 NetBeans IDE 以使用 C/C++/Fortran

创建样例项目

带有 C/C++ 的 NetBeans IDE 使用了 gdb 调试器,并提供了很多项目调试功能。为了说明这些功能,我们将以 Quote(报价)项目为例进行讲解。如果还没有创建这个项目,可执行以下操作:

  1. 选择 "File"(文件)> "New Project"(新建项目)。
  2. 在项目向导中,依次展开 "Samples"(样例)类别和 "C/C++" 子类别。
  3. 选择 "Applications"(应用程序)子类别,然后选择报价项目。单击 "Next"(下一步),然后单击 "Finish"(完成)。

创建断点

您可以随时在代码中创建并操作断点,而不用启动调试会话。

创建和删除行断点

  1. Quote_1 项目中,打开 quote.cc 文件。
  2. 在源代码编辑器窗口靠近 161 行 (response = readChar("Enter disk module type: (S for single disks, R for RAID; Q - exit)", 'S');) 的左旁注中单击,设置一个行断点。该行将以红色突出显示,表明断点已设置。
  3. 您可以通过单击位于左旁注中的图标来删除断点。
  4. 选择 "Window"(窗口)> "Debugging"(调试)> "Breakpoints"(断点)打开 "Breakpoints"(断点)窗口。行断点将在窗口中列出。

创建函数断点

  1. 选择 "Debug"(调试)> "New Breakpoint"(新建断点)(Ctrl+Shift+f8 组合键)打开 "New Breakpoint"(新建断点)对话框。
  2. 在 "Breakpoint Type"(断点类型)下拉列表中,将类型设置为 "Function"(函数)。
  3. 在 "Function Name"(函数名)文本字段中键入函数名 Customer::GetDiscount。单击 "OK"(确定)。
  4. 函数断点已设置,并且已添加到 "Breakpoints"(断点)窗口列表中。

启动调试会话

在启动调试会话时,IDE 会启动 gdb 调试器,然后在调试器中运行应用程序。IDE 将自动打开调试器窗口,并在 "Output"(输出)窗口中打印调试器输出。

  1. 右键单击项目节点并选择 "Debug"(调试),启动 Quote_1 项目的调试会话。此时将启动调节器,并运行应用程序。
  2. 选择 "Window"(窗口)> "Debugging"(调试)> "Sessions"(会话)打开 "Sessions"(会话)窗口。调试会话将显示在此窗口中。

检查应用程序状态

  1. Quote_1 应用程序会提示您在 "Output"(输出)窗口中输入信息。
  2. 在提示 "Enter customer name:"(输入客户名:)后输入客户名。
  3. 应用程序在您先前设置的函数断点处停止。此时 "Breakpoints"(断点)窗口会列出先前设置的两个断点。函数断点的断点图标顶端会出现绿色程序计数器箭头。
  4. 选择 "Window"(窗口)> "Debugging"(调试)> "Call Stack"(调用堆栈)打开 "Call Stack"(调用堆栈)窗口。此时调用堆栈将显示三个框架。
  5. 打开 "Variables"(变量)窗口,此时您看到显示了一个变量。单击 "Variables"(变量)标签左列中的顶部按钮,以显示自动变量而非局部变量。
  6. 单击展开图标以展开此结构。
  7. 单击工具栏中的 "Continue"(继续)按钮。此时将执行 GetDiscount 函数,同时在外部 I/O 窗口中显示客户折扣。此时系统会提示输入信息。
  8. 按照提示输入信息。程序会在下一个断点(即先前设置的行断点)处停止。在 quote.cc 文件中,断点图标顶端会出现绿色程序计数器箭头,指示程序暂停在哪一行。



  9. 单击 "Variables"(变量)标签,注意会显示局部变量的详细列表。
  10. 单击 "Call Stack"(调用堆栈)标签,注意此时堆栈中有一个框架。
  11. 选择 "Window"(窗口)> "Debugging"(调试)> "Registers"(注册)。此时将打开 "Registers"(注册)窗口,其中显示注册的当前内容。

  12. 选择 "Window"(窗口)> "Debugging"(调试)> "Disassembly"(反汇编)。此时将打开 "Disassembly"(反汇编)窗口,其中显示当前源文件的汇编指令。

  13. 单击工具栏中的 "Continue"(继续)按钮,并继续按照提示在 "Output"(输出)窗口中输入信息,直到程序完成。按 Enter 键退出程序后,调试会话便会结束。如果要在程序执行完毕以前终止调试会话,可以在 "Sessions"(会话)标签中右键单击该会话,选择 "Finish"(完成),或者选择 "Debug"(调试)> "Finish Debugger Session"(完成调试器会话)。
get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2015, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo