Oracle Developer Studio 附带 dbx 调试器,可以帮助您检测应用程序中的错误。
dbx 是一个交互式源代码级命令行调试工具。可以使用它来以可控方式运行 C、C++ 或 Fortran 程序以及检查已停止程序的状态。使用 dbx 可以完全控制程序的动态执行过程,包括收集性能和内存使用情况数据、监视内存访问及检测内存泄漏。
dbx 允许您执行以下任务:
检查已崩溃程序的信息转储文件
设置断点
单步执行程序
检查调用堆栈
对变量和表达式求值
使用运行时检查来发现内存访问问题和内存泄漏
使用“修复并继续”来修改和重新编译源文件并继续执行,而不重新生成整个程序
您可以在命令行、以图形方式通过 Oracle Developer 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 Developer Studio 12.5:使用 dbx 调试程序。还可以在 (dbx) 命令行键入 help 来了解有关 dbx 命令的信息。
有关新功能和已更改功能的列表,请参见Oracle Developer Studio 12.5 发行版的新增功能。
有关当前发行版的 dbx 中的已知问题、限制和不兼容性,请参见Oracle Developer Studio 12.5:发行说明。
您可以在 Oracle Developer Studio IDE 中使用 dbx,方法为打开项目,在源代码中创建断点,然后单击 "Debug"(调试)按钮。IDE 允许您使用菜单选项和按钮来分步执行程序,并提供一组完整的调试窗口。
与生成应用程序一样,IDE 将应用程序作为一个项目来调试。此外,还可以使用 IDE 调试不与 IDE 项目关联的可执行文件。
在下面的屏幕抓图中,dbx 中正运行一个 IDE 样例项目。您可以使用 "Debug"(调试)菜单中的命令或 IDE 窗口右上部的按钮来控制调试器。使用 "Debug"(调试)命令和按钮时,IDE 向 dbx 发出命令,并在各个调试窗口中显示输出。
在图中,调试器在一个断点处停止,"Output"(输出)窗口显示程序交互。有些调试器窗口(如 "Variables"(变量)和 "Breakpoints "(断点)窗口)也显示出来,但并未被选中。您可以从 "Window"(窗口)-> "Debugging"(调试)菜单中选择,以打开更多调试窗口。其中一个调试窗口是 "Debugger Console"(调试器控制台)窗口,其中显示与 dbx 的交互。还可以在 "Debugger Console"(调试器控制台)窗口的 (dbx) 提示符下键入命令。
有关在 IDE 中使用 dbx 的更多信息,请参见 IDE 中的集成帮助和Oracle Developer Studio 12.5: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 Developer Studio 12.5:dbxtool 教程中介绍了如何使用 dbxtool。