Sun Studio 12:使用 dbx 调试程序

loadobject 命令

loadobject 命令用于列出和管理装入对象中的符号信息。仅在本地模式中有效。

语法

loadobject -list [regexp] [-a]

显示当前装入的装入对象(请参见loadobject -list 命令

load -load loadobject

为指定的装入对象装入符号(请参见loadobject -load 命令)。

load -unload [regexp]

卸载指定的装入对象(请参见loadobject -unload 命令)。

load -hide [regexp]

dbx 的搜索算法中删除装入对象(请参见loadobject -hide 命令)。

loadobject -use [regexp]

将装入对象添加到 dbx 的搜索算法中(请参见loadobject -use 命令)。

load -dumpelf [regexp]

显示装入对象的各种 ELF 详细信息(请参见loadobject -dumpelf 命令)。

loadobject -exclude ex_regexp

不自动装入与 ex_regexp 匹配的装入对象(请参见loadobject -exclude 命令)。

loadobject exclude -clear

清除模式排除列表(请参见loadobject -exclude 命令)。

其中:

regexp 是正则表达式。如果未指定,则该命令应用于所有装入对象。

ex-regexp 不是可选的,必须指定。

该命令的缺省别名是 lo

loadobject -dumpelf 命令

loadobject -dumpelf 命令用于显示装入对象的各种 ELF 详细信息。仅在本地模式中有效。

语法

loadobject -dumpelf [regexp]

其中:

regexp 是正则表达式。如果未指定,则该命令应用于所有装入对象。

该命令可转储出磁盘上装入对象文件的 ELF 结构的相关信息。该输出的详细信息随时变化。如果要分析此输出,请使用 Solaris OS 命令 dumpelfdump

loadobject -exclude 命令

loadobject -exclude 命令用于告知 dbx 不要自动装入与指定正则表达式匹配的装入对象。

语法

loadobject -exclude ex_regexp [-clear]

其中:

ex_regexp 是正则表达式。

此命令可防止 dbx 自动为与指定正则表达式匹配的装入对象装入符号。与其他 loadobject 子命令中的 regexp 不同,如果未指定 ex_regexp,并不表示缺省情况下应用于所有装入对象。如果未指定 ex_regexp,该命令将列出先前的 loadobject -exclude 命令指定的排除模式。

如果指定 -clear,则删除排除模式列表。

目前这种功能不能用于防止装入主程序或运行时链接程序。另外,如果使用它防止装入 C++ 运行时库,可能会导致某些 C++ 功能无法正常使用。

此选项不能与运行时检查 (RTC) 一起使用。

loadobject -hide 命令

loadobject -hide 命令用于从 dbx 的搜索算法中删除装入对象。

语法

loadobject -hide [regexp]

其中:

regexp 是正则表达式。如果未指定,则该命令应用于所有装入对象。

该命令从程序范围中删除装入对象,并隐藏其函数和符号,不让 dbx 得知。该命令也重置“预装入”位。

loadobject -list 命令

loadobject -list 命令用于显示当前装入的装入对象。仅在本地模式中有效。

语法

loadobject -list [regexp] [-a]

其中:

regexp 是正则表达式。如果未指定,则该命令应用于所有装入对象。

显示每个装入对象的完整路径名,并在旁边显示表示状态的字母。仅当指定了 -a 选项时,才会列出隐藏的装入对象。

h

此字母表示“隐藏”(whatisstop in 之类的符号查询不会找到符号)。

u

如果有活动进程,u 表示“已取消映射”。

p

此字母表示预装入的装入对象,即程序中 loadobject -load 命令或 dlopen 事件的结果。

例如:

(dbx) lo -list libm
/usr/lib/64/libm.so.1
/usr/lib/64/libmp.so.2
(dbx) lo -list ld.so
h  /usr/lib/sparcv9/ld.so.1 (rtld)

上述示例表明,缺省情况下,运行时链接程序的符号处于隐藏状态。要在 dbx 命令中使用这些符号,请参见loadobject -use 命令

loadobject -load 命令

loadobject -load 命令用于为指定装入对象装入符号。仅在本地模式中有效。

语法

loadobject -list [regexp] [-a]

其中:

loadobject 可以是完整路径名,也可以是 /usr/lib/usr/lib/sparcv9 中的库。如果在调试某个程序,将仅搜索适当的 ABI 库目录。

loadobject -unload 命令

loadobject -unload 命令用于卸载指定的装入对象。仅在本地模式中有效。

语法

loadobject -unload [regexp]

其中:

regexp 是正则表达式。如果未指定,则该命令应用于所有装入对象。

该命令卸载与命令行中提供的 regexp 匹配的所有装入对象的符号。不能卸载使用 debug 命令装入的主程序。另外,dbx 可能会拒绝卸载当前正在使用或对 dbx 的正确运行至关重要的其他装入对象。

loadobject -use 命令

loadobject -use 命令用于向 dbx 的搜索算法中添加装入对象。仅在本地模式中有效。

语法

loadobject -use [regexp]

其中:

regexp 是正则表达式。如果未指定,则该命令应用于所有装入对象。