Oracle Solaris Studio 12.2:使用 dbx 调试程序

pathmap 命令

pathmap 命令用于将一个路径名映射到另一个路径名,以查找源文件等。该映射适用于源路径、目标文件路径和当前工作目录(如果指定 -c)。在本地模式和 Java 模式中,pathmap 命令的语法和功能相同。

pathmap 命令对于处理在不同主机上具有不同路径的自动挂载和显式 NFS 挂载文件系统很有用。尝试解决由于在自动挂载的文件系统上 CWD 不准确而由自动安装程序引起的问题时,可指定 -c。如果原始树或构建树移动了,pathmap 命令也很有用。

缺省情况下,存在 pathmap /tmp_mnt /

dbx 环境变量 core_lo_pathmap 设置为 on 时,可使用 pathmap 命令查找核心转储文件的装入对象。除此之外,pathmap 命令对查找装入对象(共享库)无效。请参见调试不匹配的核心转储文件

语法

pathmap [ -c ] [ -index ] from to

建立从 fromto 的新映射。

pathmap [ -c ] [ -index ] to

将所有路径都映射到 to

pathmap

列出所有现有路径映射(按索引)。

pathmap -s

相同,但 dbx 可以读取输出。

pathmap -d from1 from2 ...

删除指定映射(按路径)。

pathmap -d index1 index2 ...

删除指定映射(按索引)。

其中:

fromto 是文件路径前缀。from 是指编译到可执行文件或目标文件中的文件路径,to 是指调试时的文件路径。

from1 是要删除的第一个映射的文件路径。

from2 是要删除的最后一个映射的文件路径。

index 指定映射插入列表中时采用的索引。如果未指定索引,映射将添加到列表末尾。

index1 是要删除的第一个映射的索引。

index2 是要删除的最后一个映射的索引。

如果指定 -c,映射也适用于当前工作目录。

如果指定 -s,则以 dbx 可以读取的输出格式列出现有映射。

如果指定 -d,则删除指定映射。

示例

(dbx) pathmap /export/home/work1 /net/mmm/export/home/work2
  # maps /export/home/work1/abc/test.c to /net/mmm/export/home/work2/abc/test.c
(dbx) pathmap /export/home/newproject
  # maps /export/home/work1/abc/test.c to /export/home/newproject/test.c
(dbx) pathmap
(1) -c /tmp_mnt /
(2) /export/home/work1 /net/mmm/export/home/work2
(3) /export/home/newproject