跳过导航链接 | |
退出打印视图 | |
Oracle Solaris Studio 12.3 概述 Oracle Solaris Studio 12.3 Information Library (简体中文) |
Oracle Solaris Studio 附带 dbx 调试器,可以帮助您检测应用程序中的错误。
dbx 是一个交互式源码级命令行调试工具。可以使用它来以可控方式运行 C、C++ 或 Fortran 程序以及检查已停止程序的状态。使用 dbx 可以完全控制程序的动态执行过程,包括收集性能和内存使用情况数据、监视内存访问及检测内存泄漏。
dbx 允许您执行以下任务:
检查已崩溃程序的信息转储文件
设置断点
单步执行程序
检查调用堆栈
对变量和表达式求值
使用运行时检查来发现内存访问问题和内存泄漏
使用“修复并继续”来修改和重新编译源文件并继续执行,而不重新生成整个程序
您可以在命令行、以图形方式通过 Oracle Solaris Studio IDE 或者通过称为 dbxtool 的单独图形界面来使用 dbx 调试器。
有关在不同用户界面中使用 dbx 的详细信息,请参见以下部分:
启动 dbx 的 dbx 命令的基本语法如下:
dbx [options] [program-name|-] [process-ID]
启动 dbx 会话并装入要调试的程序 test:
% dbx test
启动 dbx 会话并将其连接到进程 ID 为 832 的正在运行的程序:
% dbx - 832
当 dbx 会话启动时,dbx 装入您正在调试的程序的信息。然后 dbx 以就绪状态等待访问程序的主程序块,如 C 或 C++ 程序中的 main() 函数。将显示 (dbx) 命令提示符。
您可以在 (dbx) 提示符下键入命令。一般来说,应先键入 stop in main 这样的命令来设置断点,然后键入 run 命令运行程序:
(dbx) stop in main (4) stop in main (dbx) run Running: quote_1 (process id 5685) (dbx)
当执行过程在断点处停止时,您可以键入 step 和 next 这样的命令单步执行代码,键入 print 和 display 来对表达式和变量求值。
有关 dbx 实用程序的命令行选项的信息,请参见 dbx(1) 手册页。
有关使用 dbx 的完整信息(包括命令参考部分),请参见《Oracle Solaris Studio 12.3:使用 dbx 调试程序》。还可以在 (dbx) 命令行键入 help 来了解有关 dbx 命令的信息。要获得当前版本 dbx 中的新功能和已更改功能、软件更正、已知问题、限制以及不兼容性的列表,请参见《Oracle Solaris Studio 12.3 发行版的新增功能》。
您可以在 Oracle Solaris Studio IDE 中使用 dbx,方法为打开项目,在源代码中创建断点,然后单击 "Debug"(调试)按钮。IDE 允许您使用菜单选项和按钮来分步执行程序,并提供一组完整的调试窗口。
与生成应用程序一样,IDE 将应用程序作为一个项目来调试。在下面的屏幕抓图中,dbx 中正运行一个 IDE 示例项目。您可以使用 "Debug"(调试)菜单中的命令或 IDE 窗口右上部的按钮来控制调试器。当使用 "Debug"(调试)命令和按钮时,IDE 向 dbx 发出命令,并在各个调试窗口中显示输出。
在图中,调试器在一个断点处停止,"Output"(输出)窗口显示程序交互。有些调试器窗口(如 "Variables"(变量)和 "Breakpoints "(断点)窗口)也显示出来,但并未被选中。您可以从 "Window"(窗口)-> "Debugging"(调试)菜单中选择,以打开更多调试窗口。其中一个调试窗口是 "Debugger Console"(调试器控制台)窗口,其中显示与 dbx 的交互。还可以在 "Debugger Console"(调试器控制台)窗口的 (dbx) 提示符下键入命令。
有关在 IDE 中使用 dbx 的详细信息,请参见 IDE 中的集成帮助和《Oracle Solaris Studio 12.3 IDE 快速入门教程》。
您还可以通过 dbxtool 来使用 dbx,该工具是一个独立于 IDE 但具有相似的调试窗口和编辑器的图形用户界面。与 IDE 不同的是,dbxtool 不使用项目,您可以使用它来调试任何 C、C++ 或 Fortran 可执行文件或信息转储文件。
要启动 dbxtool,请键入:
% dbxtool executable-name
您还可以忽略可执行文件名称,而从 dbxtool 内指定。
同 IDE 一样,您可以在 dbxtool 中单击工具栏按钮或使用 "Debug"(调试)菜单选项来向 dbx 发出命令。还可以在 "Debugger Console"(调试器控制台)窗口的 (dbx) 提示符下键入命令。
在下图中,正在 dbxtool 中对 quote_1 程序运行 dbx。已选择 "Debugger Console"(调试器控制台)窗口,您可以看到 (dbx) 提示符以及为响应用户选择由 dbxtool 所输入的命令。
有关使用 dbxtool 的信息,请参见 dbxtool (1) 手册页以及 dbxtool 中的集成帮助。《Oracle Solaris Studio 12.3:dbxtool 教程》中介绍如何使用 dbxtool。