跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris Studio 12.3:使用 dbx 调试程序 Oracle Solaris Studio 12.3 Information Library (简体中文) |
如果在编译后移动源文件,或是在一台计算机上生成而在另一台计算机上进行调试,或是发生查找源文件和目标文件中所述的其他情况之一,则宏略读可能无法在其略读的文件中找到包含文件。与无法找到文件的其他情况一样,解决方案是使用 pathmap 命令帮助宏略读器定位包含目录。例如,假设使用选项 -I/export/home/proj1/include 进行编译,而且代码中包含语句 #include "module1/api.h"。然后,如果将 proj1 重命名为 proj2,则以下 pathmap 命令将帮助宏略读器定位文件:
pathmap /export/home/proj1 /export/home/proj2
pathmap 不适用于用来编译原始代码的编译器。
处理宏时,必须重新装入应用程序,以使路径映射生效,与找不到文件时的其他情况不同,可以使用 pathmap 命令在路径映射过程中进行更改,这些更改会立即生效。
在一台计算机上生成而在另一台计算机上进行调试时,pathmap 命令可帮助 dbx 找到正确的文件。然而,系统包含文件(如 /usr/include/stdio.h)通常不会从生成计算机中导出,因此宏略读器可能会使用调试计算机中的文件。在某些情况下,系统包含文件可能在调试计算机上不可用。而且,特定于系统的宏和与系统相关的宏的值在调试计算机和生成计算机中可能不相同。
如果 pathmap 命令不能解决略读问题,则考虑使用 -g3 选项编译代码,并将 macro_source dbx 环境变量设置为 skim_unless_compiler 或 compiler。