【发布时间】:2018-12-19 07:34:28
【问题描述】:
我正在尝试从 execve 调用中打印出环境。我通过以下方式捕捉到这一点:
syscall::exec*:entry {
printf("%i %i %s %s\n", ppid, pid, execname, copyinstr(arg0));
}
但我似乎无法让 dtrace 相信 arg2[0] 是可以打印的。在这种情况下如何获取envp 的内容?
【问题讨论】:
-
打印像
arg2[0]这样从未出现在代码中的值有点困难。您如何尝试打印arg2[0]? -
这只是我期望的一个例子。我想通过
execve调用打印环境。如果您觉得混淆,可以忽略arg2[0]位。 -
在实际的
exec()调用替换进程之前还是之后?