【发布时间】:2023-04-02 03:20:01
【问题描述】:
我想知道当手机(android)意外重启时谁调用了*sys_reboot*。
有没有办法在 syscall(android 内核)中转储调用堆栈?
【问题讨论】:
-
请注意,来自
syscall的内核调用堆栈将只有一层深......因为它是进入内核的第一种方式。您确定此时需要 kernel 调用堆栈,还是 userland 调用堆栈? -
不,我真正想要的是用户空间堆栈。所以我不认为 'dump_stack()' 或 'panic()' 可以工作
-
你需要停止进程/线程
send_sig_info(SIGSTOP, SEND_SIG_FORCED, current),然后生成一个用户空间助手(gdb或pstack脚本,或busybox-内置)获取堆栈跟踪,然后继续该过程。
标签: android kernel system-calls