我正在使用'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执行..请帮助......
答案 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时间时,此问题是第一个问题,因此希望对您有所帮助。