【发布时间】:2013-02-19 08:43:24
【问题描述】:
我正在使用“strace”命令记录与 Android 应用相关的系统调用执行情况。
Process process = Runtime.getRuntime().exec("su");
OutputStream os;
os = process.getOutputStream();
os.write("strace -p"+processID+" -o /mnt/sdcard/straceLog.txt".getBytes());
os.close();
我如何才能在任何应用程序的特定时间段(比如 30 秒)内仅对系统调用进行 strace 并在此之后中断 strace 执行..请帮助...
【问题讨论】:
-
strace(至少 Android 版本)似乎没有任何此类选项。可能性可能是在您的 java 应用程序中运行计时器并在一段时间后终止 strace(或父超级用户 shell),或者构建具有时间限制的修改后的 strace。您还可以考虑在 java 中捕获输出,然后根据需要关闭管道,并查看是否由于结束关闭而导致 strace 在 EPIPE 上死亡。
标签: android shell execute strace