5

我在一个有根设备上,想要对某个应用程序进行完整的内存转储。

我试过了:

  1. 一些谷歌结果说使用“adb kill -10 [pid]”但是,它给了我“sigusr1 forcing gc (no hprof)”,并且没有 hproc 被转储。这可能是特定于设备的。
  2. 我也尝试过在 DDMS (Eclipse) 中使用“Dump PROF 文件”按钮,但它只给了我一个大约 5 MB 的文件,这不是一个完整的内存转储,也不是很有用。
  3. 我尝试 chmod /proc/[pid]/mem 并访问该文件,但即使在根设备上,它也给了我权限被拒绝。
4

1 回答 1

0

HPROF 是单独的堆转储,因此显然不是全部内存。正如这里所解释的,Android 不再在较新版本的 SIGUSR1(信号 10)上转储堆。这里给出了一些关于使用 /proc/[pid]/mem 的有用信息。简而言之:您的“权限被拒绝”也可能是由于尝试以错误的方式读取文件造成的。

编辑:要阅读除 /proc/self/mem 以外的任何内容,具有调试权限可能会更加有用,请参阅此问题以获取一些见解。

于 2013-06-22T21:57:13.133 回答