corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

调试 C/C++ 项目教程

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

目录

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

要求

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

软件或资源 要求的版本
NetBeans IDE 带有 NetBeans C/C++ 包的版本 6.5
Java Developer Kit (JDK) 版本 6 或版本 5
Windows 平台:
GNU C 和 C++ 编译器、makegdb

www.cygwin.com
www.mingw.org
Solaris 平台:
GNU C 和 C++ 编译器
Sun C 和 C++ 编译器
Solaris makegmake
gdb

3.4.3
5.9(Sun Studio 12 发行版)
3.80
6.6 或 6.8
Linux 平台:
Red Hat Fedora Core:
gccg++
gdb
GNU Make

Ubuntu:
gccg++
gdb
GNU Make

4.1.2
6.6 或 6.8
3.81


4.1.2
6.6 或 6.8
3.81
Mac OS X 平台:
gccg++
gdb
GNU Make
Xcode 包

4.0.1
6.3.50
3.80
6.5

有关下载和安装必需软件的信息,请参见 NetBeans IDE 6.5 安装指南安装和配置 C/C++ 支持

创建样例项目

NetBeans C/C++ Pack 6.5 使用 gdb 调试器,为调试项目提供了众多功能。为了说明这些功能,我们将以“报价”项目为例进行讲解。如果还没有创建这个项目,可执行以下操作:

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

创建断点

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

创建和删除行断点

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

创建函数断点

  1. 选择“调试”>“新建断点”(Ctrl+Shift+f8) 打开“新建断点”对话框。
  2. 在“断点类型”下拉列表中,将类型设置为“函数”。
  3. 在“函数名”文本字段中键入函数名 Customer::GetDiscount。单击“确定”。

  4. “添加断点”窗口屏幕快照

  5. 函数断点已设置,并且已添加到“断点”窗口列表中。

启动调试会话

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

  1. 右键单击项目节点并选择“调试”,启动 Quote_1 项目的调试会话。此时调试器将启动,应用程序也将运行,并且“局部变量”、“监视”和“调用栈”窗口都将打开。

  2. 选择“窗口”>“调试”>“会话”来打开“会话”窗口。调试会话将显示在此窗口中。

检查应用程序状态

  1. Quote_1 应用程序会提示您在外部 I/O 窗口中输入信息。

  2. 在提示“输入客户名:”后输入客户名。

  3. 应用程序在您先前设置的函数断点处停止。选择“窗口”>“调试”>“断点”来打开“断点”窗口。此时该窗口会列出之前设置的两个断点。函数断点以粗体显示。

  4. “断点”标签的屏幕快照

  5. 单击“调用栈”标签。此时调用栈将显示三个框架。

  6. “调用栈”标签的屏幕快照

  7. 单击“局部变量”标签,注意会显示一个变量。单击展开图标(带加号的小框),展开结构。

  8. “局部变量”标签屏幕快照

  9. 单击“继续”按钮。此时将执行 GetDiscount 函数,同时在外部 I/O 窗口中显示客户折扣。此时系统会提示输入信息。

  10. 按照提示输入信息。程序会在下一个断点(即先前设置的行断点)处停止。在 quote.cc 文件中,断点图标顶端会出现绿色程序计数器箭头,指示程序暂停在哪一行。

    源代码编辑器的屏幕快照

  11. 单击“局部变量”标签,注意局部变量的长列表。

  12. “局部变量”标签屏幕快照

  13. 单击“调用栈”标签,注意此时栈中有一个框架。
  14. 选择“窗口”>“调试”>“线程”。此时将打开“线程”窗口,显示两个线程。当前线程以粗体显示。

    “线程”窗口的屏幕快照

  15. 选择“窗口”>“调试”>“注册”。此时将打开“注册”窗口,其中显示注册的当前内容。

    “注册”窗口屏幕快照

  16. 选择“窗口”>“调试”>“反汇编”。此时将打开“反汇编”窗口,其中显示当前源文件的汇编指令。

    “反汇编”窗口屏幕快照

  17. 单击“继续”按钮,继续按提示在外部 I/O 窗口中输入信息,直到程序结束。当输入 Q 退出程序时,外部 I/O 窗口将关闭,并且调试会话将结束。如果要在程序执行完毕以前终止调试会话,可以在“会话”标签中右键单击该会话,选择“完成”,或者选择“调试”>“完成调试器会话”。