【问题标题】:OS X: Attach to a running process and read its environment variablesOS X:附加到正在运行的进程并读取其环境变量
【发布时间】:2011-12-10 23:38:10
【问题描述】:

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

我认为 DTrace 将成为这项工作的工具,但我在网上找到的唯一解决方案(来自 this mailing list thread)似乎是特定于 Solaris 的,因为该脚本无法在我的 Mac 上执行。

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

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

任何帮助将不胜感激!

【问题讨论】:

  • 我的问题是类似的,虽然我更关心访问环境变量,即使不使用某种调试器。

标签: macos environment-variables dtrace


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 2020-02-04
    • 2010-10-10
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 2011-08-19
    • 2016-10-20
    相关资源
    最近更新 更多