我想在发生某些事件时转储堆栈,所以我将脚本编写到 init.rc ,如下所示。然后我使用setprop dump_stack 0
和setprop dump_stack 1
来装配它,但我的控制台中没有输出?
on property:dump_stack=1
exec /system/bin/cat /proc/100/stack # pid = 100
我在system \ core \ init \ builitins.c中添加了一些日志,它说代码是有效的(retstatus为0)。即使我将脚本更改为“exec / system / bin / cat / proc / 100 / stack> / data / temp”,它仍然无效。那么,init.rc(init进程)的输出在哪里?
PS。我将脚本写入init.rc的原因是“Permission”。 init进程是root,因此它可以转储其他进程的堆栈。
而且,语法是否正确?我在http://www.kandroid.org/online-pdk/guide/bring_up.html
中用 Android Init Language 编写“exec / system / bin / cat / proc / 100 / stack”答案 0 :(得分:3)
Init正在写入内核缓冲区。您可以使用dmesg查看其输出。确保在init.rc文件中增加loglevel。