mmapfile 命令用于查看核心转储中丢失的内存映射文件内容。仅在本地模式中有效。
Solaris 核心转储文件不包含只读内存段。可执行只读段(即文本)自动进行处理,dbx 通过查看可执行文件和相关共享对象对照这些段解决内存访问问题。
查看从核心转储中丢失的内存映射文件的内容。
其中:
mmapped_file 是核心转储期间映射内存的文件的文件名。
address 是进程地址空间的起始地址。
length 是要查看的地址空间的字节长度。
offset 是距离 mmapped_file 中的起始地址的字节偏移。
只读数据段通常在应用程序内存映射数据库时出现。例如:
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