为什么 lldb 生成的内存转储文件比请求的要大?

Why does lldb produce a memory dump file way larger than requested?

运行 在 Xcode

中的 lldb 调试器中执行以下命令
memory read pArr --outfile ~/pArr.dump --count 5081160 --force

生成一个大小约为 25MB 的文件,而不是预期的 5MB。而且它并不正好是请求大小的 5 倍,只是接近它。

是我做错了什么,还是lldb有问题?

典型的 memory read,不转储到文件,写入十六进制转储。也就是说,它不是从内存中写入原始字节,而是将它们格式化为人类可读的表示形式。你看过你的档案了吗?我怀疑这就是您会发现的,在这种情况下,很明显为什么它比转储的字节数大得多。内存的每个字节由输出表示中的几个字符(字节)表示。

memory read 有一个 -b/--binary 选项,可以满足您的预期。