Macos OSX:附加到正在运行的进程并读取其环境变量

Macos OSX:附加到正在运行的进程并读取其环境变量,macos,environment-variables,dtrace,Macos,Environment Variables,Dtrace,可能吗?如果可能,如何实现?读取正在运行的进程的环境变量。更具体地说,我关心的是流程本身使用setenv或类似工具设置的环境变量,而不是启动流程时设置的一般用户会话环境变量 我认为DTrace将是这项工作的工具,但我在网上找到的唯一解决方案似乎是特定于Solaris的,因为脚本无法在我的Mac上执行 也许Instruments以某种方式公开了这个功能,而我还没有找到它 我也尝试过,这是一个很好的小应用程序,它显示了包括环境变量在内的流程信息,但它没有显示流程本身设置的任何环境变量,这正是我想要的

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

我认为DTrace将是这项工作的工具,但我在网上找到的唯一解决方案似乎是特定于Solaris的,因为脚本无法在我的Mac上执行

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

我也尝试过,这是一个很好的小应用程序,它显示了包括环境变量在内的流程信息,但它没有显示流程本身设置的任何环境变量,这正是我想要的


任何帮助都将不胜感激

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

将动态库注入正在运行的进程。 从注入的动态库读取环境变量。 通过IPC RPC、共享内存等将环境变量发送到应用程序中。 顺便说一下,我计划将这种类型的环境变量添加到我的任务浏览器中

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


我的问题与此类似,尽管我更关心的是在不使用某种调试器的情况下访问环境变量。