JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:使用 dbx 调试程序     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  dbx 入门

2.  启动 dbx

启动调试会话

调试信息转储文件

在相同的操作环境中调试信息转储文件

如果信息转储文件被截断

调试不匹配的信息转储文件

消除共享库问题

注意事项

使用进程 ID

dbx 启动序列

设置启动属性

将编译时目录映射到调试时目录

设置 dbx 环境变量

创建自己的 dbx 命令

编译调试程序

使用 -g 选项进行编译

使用独立的调试文件

创建独立的调试文件

调试优化代码

参数与变量

内联函数

编译时未使用 -g 选项的代码

共享库要求使用 -g 选项以获得完全 dbx 支持

完全剥离的程序

退出调试

停止进程执行

dbx 中分离进程

中止程序而不终止会话

保存和恢复调试运行

使用 save 命令

将系列调试运行另存为检查点

恢复已保存的运行

使用 replay 保存和恢复

3.  定制 dbx

4.  查看和导航到代码

5.  控制程序执行

6.  设置断点和跟踪

7.  使用调用堆栈

8.  求值和显示数据

9.  使用运行时检查

10.  修复并继续

11.  调试多线程应用程序

12.  调试子进程

13.  调试 OpenMP 程序

14.  处理信号

15.  使用 dbx 调试 C++

16.  使用 dbx 调试 Fortran

17.  使用 dbx 调试 Java 应用程序

18.  在机器指令级调试

19.  将 dbx 与 Korn Shell 配合使用

20.  调试共享库

A.  修改程序状态

B.  事件管理

C.  宏

D.  命令参考

索引

保存和恢复调试运行

dbx 提供了三个命令,用于保存全部或部分调试运行并在稍后重新运行调试:

使用 save 命令

save 命令将自上一 run 命令、rerun 命令或 debug 命令开始直到 save 命令期间所发出的所有调试命令保存到文件中。调试会话中的此段称为调试运行

save 命令不仅仅保存已发出的调试命令列表。它还保存运行开始时与程序状态相关联的调试信息,如断点、显示列表等等。当恢复已保存的运行时,dbx 将使用保存文件中的信息。

可以保存调试运行的一部分,即,整个运行从最后输入命令开始减去指定数目的命令。

image:该图显示使用 save 命令保存完整运行以及使用 save -2 命令保存减去最后两步后的运行的情况

如果不能确定要在何处结束正在保存的运行,可以使用 history 命令查看自会话开始以来发出的调试命令列表。


注 - 缺省情况下,save 命令将信息写入特定的保存文件。如果要将调试运行保存到稍后可以恢复的文件,可使用 save 命令来指定文件名。请参见将系列调试运行另存为检查点


要保存直到 save 命令的整个调试运行,请键入:

(dbx) save

要保存部分调试运行,可使用 save number 命令,其中 number 是在 save 命令之前所不想保存的命令的个数。

(dbx) save -number

将系列调试运行另存为检查点

如果保存调试运行时没有指定文件名,dbx 将信息写入特定的保存文件。每次保存时,dbx 都会覆盖此保存文件。但可通过为 save 命令指定 filename 参数,将调试运行保存到稍后可以恢复的文件,因为信息已保存到 filename,所以即使保存了其他调试运行,这个文件今后也能恢复。

保存一系列运行可为您提供一组检查点,从会话中较早的时间开始依次排列每个检查点。您可以恢复这些已保存运行中的任意一个运行,继续,然后将 dbx 重置到早期运行中所保存的程序位置和状态。

要将调试运行保存到其他文件而不是缺省的保存文件:

(dbx) save filename

恢复已保存的运行

保存运行后,可使用 restore 命令恢复该运行。dbx 使用保存文件中的信息。恢复运行时, dbx 首先将内部状态重置到运行开始时的状态,然后重新发出所保存的运行中的每个调试命令。


注 - source 命令也可以重新发出存储在文件中的命令集,但不重置 dbx 的状态;它仅从当前程序位置重新发出命令列表。


要精确恢复已保存的调试运行,运行的所有输入必须完全相同: run 类型命令的参数、手动输入和文件输入。


注 - 如果在执行 restore 之前保存段,然后发出 runrerundebug 命令,restore 将使用第二个保存后 runrerundebug 命令的参数。如果这些参数不同,则不能进行精确恢复。


要恢复已保存的调试运行,请键入:

(dbx) restore

要恢复已保存到其他文件而不是缺省的保存文件的调试运行,请键入:

(dbx) restore filename

使用 replay 保存和恢复

replay 命令是一个组合命令,相当于在 save -1 命令后立即发出一个 restore 命令。replay 命令带有负的 number 参数,此参数将传递给命令的 save 部分。缺省情况下,-number 的值为 -1,因此 replay 相当于撤消命令,可以恢复直到(但不包括)最后发出的命令为止的最后一个运行。

要重新运行当前的调试运行,但不包括最后发出的调试命令,请键入:

(dbx) replay

要重新运行当前调试运行并在特定命令前停止该运行,请使用 dbx replay 命令,其中 number 是最后一个调试命令之前的命令个数。

(dbx) replay -number