我想在某些事件发生时转储堆栈,所以我写了一个脚本到 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进程)的输出在哪里呢?
附言。我将脚本写入 init.rc 的原因是“权限”。 init进程是root,所以它可以转储其他进程的堆栈。
还有,语法是否正确?我用 Android Init Language 在 http://www.kandroid.org/online-pdk/guide/bring_up.html 中编写了“exec/system/bin/cat/proc/100/stack”
最佳答案
Init 正在写入内核缓冲区。您可以使用 dmesg 查看其输出。确保在 init.rc 文件中提高日志级别。
关于android - Android平台如何查看init.rc(init进程)的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12102851/