使用 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 命令。