如何用valgrind运行surfaceflinger?

时间:2015-08-28 09:37:43

标签: android valgrind surfaceflinger

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

1 个答案:

答案 0 :(得分:0)

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

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

surfaceflinger二进制文件替换为启动在valgrind下运行的SurfaceFlinger的二进制文件应该可以正常工作;只要确保你wait()完成它或者启动就会认为它会在启动器退出时死亡。

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

你会从各种ioctl()的valgrind中得到一些抱怨,尤其是涉及硬件编辑器的地方。