跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris Studio 12.3:使用 dbx 调试程序 Oracle Solaris Studio 12.3 Information Library (简体中文) |
dbx 必须知道与程序关联的源代码文件的位置。源文件的缺省目录是上次编译时它们所在的目录。如果移动源文件或将源文件复制到新位置,必须重新链接程序并在调试前更改为新位置,或者使用 pathmap 命令。
如果采用 Sun Studio 11 及早期发行版中 dbx 所用的 stabs 格式,dbx 中的调试信息有时会使用对象文件来载入其他调试信息。当 dbx 显示源代码时,会使用源文件。
包括源文件路径在内的符号信息包含在可执行文件中。当 dbx 需要显示源代码行时,将根据查找源文件的需要读取适量的符号信息,并读取和显示源文件中的代码行。
符号信息包括源文件的完整路径名,但是当键入 dbx 命令时,通常只使用文件的基本名称。例如:
stop at test.cc:34
dbx 将在符号信息中搜索匹配的文件。
如果源文件已经删除,dbx 将无法显示这些文件中的源代码行,但您可以显示堆栈跟踪,输出变量值,甚至还可以知道现在所处的源代码行。
如果在编译和链接程序后移动了源文件,可将其新位置添加到搜索路径中。pathmap 命令可创建从文件系统的当前视图到可执行映像中的名称的映射。该映射应用于源路径和目标文件路径。
(dbx) pathmap [-c] from to
如果使用 -c,该映射还将应用于当前工作目录。
pathmap 命令还可用于处理在不同主机上具有不同基路径的自动挂载或显式 NFS 挂载的文件系统。因为当前工作目录在自动挂载的文件系统中不准确,所以在尝试解决由自动挂载程序引起的问题时,请使用 -c。
缺省情况下,存在 /tmp_mnt 到 / 的映射。
有关更多信息,请参见pathmap 命令。