如何在特定时间段内执行strace

时间:2013-02-19 08:43:24

标签: android shell execute strace

我正在使用'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执行..请帮助......

2 个答案:

答案 0 :(得分:0)

在后台进程中运行strace并在给定的时间后终止进程。

Command line command to auto-kill a command after a certain amount of time

os.write(“strace -p”+ processID +“ - o /mnt/sdcard/straceLog.txt& sleep 30; kill $!”。getBytes());

答案 1 :(得分:0)

使用timeout程序。

timeout 1 strace -c sleep 5

或合并到OP的问题中:

os.write("timeout 30 strace -p"+processID+" -o /mnt/sdcard/straceLog.txt".getBytes());

可能在Android上不可用(我不知道),但是,当我搜索基于运行时间的strace时间时,此问题是第一个问题,因此希望对您有所帮助。