2

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

4

2 回答 2

1

使用该timeout程序。

timeout 1 strace -c sleep 5

或纳入OP的问题:

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

可能在 Android 上不可用(我不知道),但是当我搜索 running strace time based 时,这个问题是第一个命中,所以希望这可以帮助某人。

于 2020-08-19T07:45:50.430 回答
0

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

命令行命令在一定时间后自动终止命令

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

于 2013-05-11T17:38:01.057 回答