Android Studio 有 NDK 内存查看器吗?
Does Android Studio have an NDK memory viewer?
我正在将 windows 的 C 库代码移植到 android
当我在 NDK C 代码中创建一个 动态分配的数组 时,变量查看器 window 只显示第一个元素的地址,以及第一个元素
我想在phone的内存
中查看数组的所有成员
android studio 中是否有用于 NDK 的内存查看器或类似工具?
或者作为替代方案,我可以在 lldb 控制台中进行某种内存转储吗?
您可以使用 LLDB print
(简称 p
)命令打印一个 动态分配的 int 数组如下所示:(根据您自己的情况修改 size 和 type)
(lldb) print *(int (*)[5])foo2
它将输出 int 数组的所有元素。请参阅下面的屏幕截图:
对于 GUI 样式,您可以 select Variables 选项卡并使用与上述命令行类似的语句添加新手表,请参见下面的屏幕截图:
然后:
展开watched语句,所有元素如下:
编辑 #1
使用parray
命令更简单:
(lldb) parray 5 foo2
(int *) = 0x000072e200e2da70 {
(int) [0] = 20
(int) [1] = 8
(int) [2] = 55
(int) [3] = 6
(int) [4] = 52
}
我正在将 windows 的 C 库代码移植到 android
当我在 NDK C 代码中创建一个 动态分配的数组 时,变量查看器 window 只显示第一个元素的地址,以及第一个元素
我想在phone的内存
中查看数组的所有成员android studio 中是否有用于 NDK 的内存查看器或类似工具?
或者作为替代方案,我可以在 lldb 控制台中进行某种内存转储吗?
您可以使用 LLDB print
(简称 p
)命令打印一个 动态分配的 int 数组如下所示:(根据您自己的情况修改 size 和 type)
(lldb) print *(int (*)[5])foo2
它将输出 int 数组的所有元素。请参阅下面的屏幕截图:
对于 GUI 样式,您可以 select Variables 选项卡并使用与上述命令行类似的语句添加新手表,请参见下面的屏幕截图:
然后:
展开watched语句,所有元素如下:
编辑 #1
使用parray
命令更简单:
(lldb) parray 5 foo2
(int *) = 0x000072e200e2da70 {
(int) [0] = 20
(int) [1] = 8
(int) [2] = 55
(int) [3] = 6
(int) [4] = 52
}