-1

我正在调试内存损坏问题,我想检查 SF 是否正在访问无效内存,但我不知道如何使用命令行启动 SF。请帮忙。

4

1 回答 1

0

SurfaceFlinger 很早就由系统启动,通常不会由用户从命令行启动。

一种方法是将 valgrind 命令插入 initd 控制脚本,修改init.rc。由于 rootdir 的挂载方式,这比听起来要难。

用启动在 valgrind 下运行的 SurfaceFlinger的二进制文件替换surfaceflinger二进制文件应该可以;只需确保您wait()完成它,否则 initd 将假定它在启动器退出时死亡。

当然,判断 SurfaceFlinger 是否访问无效内存的最佳方法是查看它是否崩溃,尽管您对“无效”的定义可能超出了“未映射或映射不兼容”的范围。

你会从各种 valgrind 中得到一些抱怨ioctl(),尤其是在 Hardware Composer 方面。

于 2015-08-30T05:11:45.307 回答