我正在调试内存损坏问题,我想检查 SF 是否正在访问无效内存,但我不知道如何使用命令行启动 SF。请帮忙。
问问题
226 次
1 回答
0
SurfaceFlinger 很早就由系统启动,通常不会由用户从命令行启动。
一种方法是将 valgrind 命令插入 initd 控制脚本,修改init.rc。由于 rootdir 的挂载方式,这比听起来要难。
用启动在 valgrind 下运行的 SurfaceFlinger的二进制文件替换surfaceflinger
二进制文件应该可以;只需确保您wait()
完成它,否则 initd 将假定它在启动器退出时死亡。
当然,判断 SurfaceFlinger 是否访问无效内存的最佳方法是查看它是否崩溃,尽管您对“无效”的定义可能超出了“未映射或映射不兼容”的范围。
你会从各种 valgrind 中得到一些抱怨ioctl()
,尤其是在 Hardware Composer 方面。
于 2015-08-30T05:11:45.307 回答