android - Android平台如何查看init.rc(init进程)的输出?

标签 android linux linux-kernel system

我想在某些事件发生时转储堆栈,所以我写了一个脚本到 init.rc 如下。然后我使用 setprop dump_stack 0setprop 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 Languagehttp://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/

相关文章:

安卓音乐播放器柜台服务

android - "android.widget.LinearLayout"无法在 ListView onItemClick 中转换为 "android.widget.TextView"

java - 使用sqlite登录失败

c++ - Visual Studio : Intellisense Problems and Linux Compatibility

c - 使用 stat (st_uid) 的段错误(核心转储)

linux - 如果 ISR 在 Linux 中挂起会怎样?

java - 如何在 Android Studio 中创建 package-info.java

linux - Arm Linux sshd-telnetd 内核 Oops 跟踪

linux - 如何从内核代码调用内核模块 (LKM) 中定义的函数?

linux - 用于分析函数缓存行为的 SystemTap 脚本