1

是否可以(如果可以,如何?)读取正在运行的进程的环境变量。更具体地说,我关心的是进程本身设置的环境变量(使用 setenv() 或类似方法),而不是进程启动时设置的一般用户会话环境变量。

我认为 DTrace 将成为这项工作的工具,但我在网上找到的唯一解决方案(来自这个邮件列表线程)似乎特定于 Solaris,因为该脚本无法在我的 Mac 上执行。

也许 Instruments 以某种方式公开了这个功能,而我还没有找到它?

我也尝试过Tasks Explorer,这是一个不错的小应用程序,它显示了包括环境变量在内的进程信息,但它不显示进程本身设置的任何环境变量,这正是我所追求的。

任何帮助将非常感激!

4

1 回答 1

0

我想你可以尝试下一个方法:

  1. 将您的 dylib 注入正在运行的进程中。
  2. 从注入的 dylib 中读取环境变量。
  3. 通过 IPC(RPC、共享内存等)将环境变量发送到您的应用程序中。

顺便说一句,我计划将这种类型的环境变量探索添加到我的任务资源管理器中。

下一个链接将帮助您进行注射:

于 2011-12-01T02:17:16.153 回答