【问题标题】:How to Copy the Environment Variables from Sysinternal's Process Explorer如何从 Sysinternals Process Explorer 复制环境变量
【发布时间】:2013-01-07 06:59:48
【问题描述】:

是否有一种优雅的方法可以将环境变量从 Process Explorer 复制到进程的剪贴板? 我试图比较两个 C++ 编译进程,并想看看环境变量有何不同。看来我无法复制文本并随后将其粘贴以进行视觉比较。

注意我宁愿坚持使用 PE 而不是同时使用多种工具,但如果使用其他工具是唯一的选择,请随时提出建议。

还将其标记为 C++,期望从 C++ 开发人员/调试人员的角度提供解决方案,包括使用 Visual C++

【问题讨论】:

  • 可能更简单的方法是在程序中使用win32 api(GetEnvironmentStrings 函数)
  • @KostiaShiian:我知道我可以从 PEB 读取任何进程的用户进程参数,但实际上我正在寻找用于调试目的的工具。
  • 这个怎么样 - codeproject.com/Articles/25647/… ?我不记得了,但支持工具或资源工具包中可能有工具,Windows 调试工具也可能对您有所帮助。
  • @KostiaShiian:是的,这也是我得到的最接近的,现在正在试验它。只需要确定结果是否可信。我还没有通过源代码:-)
  • windbg !peb 命令显示它

标签: c++ windows visual-c++ process-explorer


【解决方案1】:

对于任何仍然感兴趣的人,16.02 版的进程浏览器现在能够像进程黑客一样复制进程的属性。不知道什么时候加这个能力的。

【讨论】:

  • 现在很好用!没有上下文菜单。只需使用 Ctrl+C
【解决方案2】:

Sysinternals Process Explorer 目前无法执行此操作。非常烦人,而且肯定是一个错误,尤其是当变量的值太长而无法显示时。

开源工具 Process Hacker 2 (http://processhacker.sourceforge.net) 没有这个问题。用法类似于Process Explorer:

  1. 启动Process Hacker
  2. 双击感兴趣的进程
  3. 点击“环境”标签
  4. 全选 (Ctrl+A),然后复制 (Ctrl+C)

【讨论】:

  • 进程黑客正是我所需要的。
  • 非常感谢!你拯救了我的一天。我的路径环境变量中有几十个条目,并且在 Windows 上安装了 CLISP,所有这些条目都被删除了,并且只添加了 CLISP 的路径!
【解决方案3】:

windbg !peb 命令显示它。

【讨论】:

  • 您和@MSalters 的解决方案都有意义。但我仍然觉得 PE 应该允许将数据复制到剪贴板。
【解决方案4】:

只需检查调试器中的_environ 变量即可。

【讨论】:

    猜你喜欢
    • 2011-12-11
    • 2017-10-20
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 2014-10-09
    • 2013-01-02
    相关资源
    最近更新 更多