Sun Studio 12:使用 dbx 调试程序

module 命令

module 命令用于读取一个或多个模块的调试信息。仅在本地模式中有效。

语法

module [-v]

打印当前模块的名称。

module [-f] [-v] [-q] name

读入称为 name 的模块的调试信息。

module [-f] [-v] [-q] -a

读入所有模块的调试信息。

其中:

name 是要读取其调试信息的模块的名称。

-a 表示指定所有模块。

-f 表示强制读取调试信息,即使该文件比可执行文件更新(使用时需谨慎!)。

-v 表示指定冗余模式,用于打印语言、文件名等。

-q 表示指定静默模式。

示例

只读数据段通常在应用程序内存映射数据库时出现。例如:

caddr_t vaddr = NULL;
off_t offset = 0;
size_t = 10 * 1024;
int fd;
fd = open("../DATABASE", ...)
vaddr = mmap(vaddr, size, PROT_READ, MAP_SHARED, fd, offset);
index = (DBIndex *) vaddr;

要能够通过调试器像访问内存一样访问数据库,应该键入:

mmapfile ../DATABASE $[vaddr] $[offset] $[size]

然后可以键入以下命令按结构化方式查看数据库内容:

print *index