2

我正在将 Windows 的 C 库代码移植到 android

当我在 NDK C 代码中创建动态分配的数组时,变量查看器窗口只显示第一个元素的地址和第一个元素的值

我想查看手机内存中的 所有数组成员

android studio中是否有用于NDK的内存查看器或类似的东西?

或者作为替代方案,我可以在 lldb 控制台中进行某种内存转储吗?

4

1 回答 1

2

您可以使用 LLDB (简称)命令打印动态分配的 int 数组,如下所示:(根据您自己的情况修改大小类型)printp

(lldb) print *(int (*)[5])foo2

它将输出int 数组的所有元素。见下面的截图:

在此处输入图像描述

对于 GUI 样式,您可以选择变量选项卡并使用与上述命令行类似的语句添加新手表,请参见下面的屏幕截图:

在此处输入图像描述

进而:

在此处输入图像描述

展开 watch 语句,您将看到所有元素如下:

在此处输入图像描述


编辑#1

使用parray命令更简单:

(lldb) parray 5 foo2
(int *) $5 = 0x000072e200e2da70 {
  (int) [0] = 20
  (int) [1] = 8
  (int) [2] = 55
  (int) [3] = 6
  (int) [4] = 52
}
于 2019-04-17T02:35:25.910 回答