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

3.  定制 dbx

4.  查看和导航到代码

5.  控制程序执行

6.  设置断点和跟踪

7.  使用调用堆栈

8.  求值和显示数据

9.  使用运行时检查

10.  修复并继续

使用修复并继续

修复并继续如何操作

使用修复并继续修改源码

修复程序

修复文件

修复后继续

更改已执行的函数

更改一个尚未被调用的函数

更改当前正在执行的函数

更改当前位于堆栈中的函数

修复后更改变量

修改头文件

修复 C++ 模板定义

11.  调试多线程应用程序

12.  调试子进程

13.  调试 OpenMP 程序

14.  处理信号

15.  使用 dbx 调试 C++

16.  使用 dbx 调试 Fortran

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

18.  在机器指令级调试

19.  将 dbx 与 Korn Shell 配合使用

20.  调试共享库

A.  修改程序状态

B.  事件管理

C.  宏

D.  命令参考

索引

使用修复并继续

使用修复并继续功能,可以修改和重新编译本地源文件并继续执行,而无需重新生成整个程序。通过更新 .o 文件并将其拼接到程序中,即可不必重新进行链接。

使用修复并继续的优点是:

修复并继续如何操作

使用 fix 命令之前,必须编辑源代码。(有关修改代码的方式,请参见使用修复并继续修改源码。)保存更改后,请键入 fix。有关 fix 命令的信息,请参见fix 命令

调用 fix 命令后,dbx 会使用适当的编译器选项来调用编译器。编译已修改的文件并创建共享对象 (.so) 文件。通过比较新旧文件进行语义测试。

使用运行时链接程序将新的目标文件链接到正在运行的进程。如果正在修复位于堆栈顶的函数,则新的停止于函数便是新函数中同一行的开头。旧文件中的所有断点均被移到新文件中。

无论文件在编译时是否使用了调试信息,都可以对其使用修复并继续功能,但对于在最初编译时未使用调试信息的文件,fix 命令和 cont 命令有一些功能性限制。有关更多信息,请参见fix 命令中有关 -g 选项的说明。

可以修复共享目标 (.so) 文件,但必须在特殊模式下打开这些文件。在调用 dlopen 函数时,可以使用 RTLD_NOW|RTLD_GLOBAL RTLD_LAZY|RTLD_GLOBAL

Oracle Solaris Studio C 和 C++ 编译器的预编译头功能要求在重新编译时使用相同的编译器选项。由于 fix 命令会对编译器选项稍加更改,因此请勿对使用预编译头创建的目标文件使用 fix 命令。

使用修复并继续修改源码

使用修复并继续时,可以通过以下方式修改源码:

将函数从旧文件映射到新文件时,可能会出现问题。要在编辑源文件时尽量减少此类问题:

如果进行上述任一更改,请重新生成整个程序,而不要使用修复并继续。