int mdb_dumpptr(uintptr_t addr, size_t nbytes, uint_t flags, mdb_dumpptr_cb_t func, void *data); int mdb_dump64(uint64_t addr, uint64_t nbytes, uint_t flags, mdb_dump64_cb_t func, void *data);
这些函数可以用于生成列显到标准输出的带格式十六进制和 ASCII 数据转储。 每个函数都接受 addr 参数(指定起始位置)、nbytes 参数(指定要显示的字节数)、如下所述的一组标志、func 回调函数(用于读取要显示的数据)和作为其最后一个参数传递到回调 func 的每个调用的数据参数。这些函数在各方面都是相同的,只不过 mdb_dumpptr 使用 uintptr_t 作为其地址参数,而 mdb_dump64 使用 uint64_t。 例如,将 mdb_dump64 与 mdb_pread 组合使用时,此不同是很有用的。 内置的 ::dump dcmd 使用这些函数执行其数据显示。
flags 参数应该是以下一个或多个值的按位 OR:
按字节存储顺序调整。 此选项假定字大小等于由 MDB_DUMP_GROUP() 指定的当前组大小。此选项将始终关闭对齐方式、标题和 ASCII 显示,以避免输出冲突。 如果使用 MDB_DUMP_ENDIAN 设置了 MDB_DUMP_TRIM,则转储的字节数将向下舍入到最接近的字大小字节。
将字节组大小设置为 group。 缺省 group 大小为 4 字节。 group 大小必须是 2 的幂,且可以整除行宽。