如何从小型转储中获取环境变量?

How to get environment variables from minidump?

我得到了一个使用 procdump -ma 创建的小型转储(故障转储)。我可以在 VS2013 和 WinDbg 上打开它,但是我需要知道哪些环境变量被发送到该进程。有没有一种方法可以在不编写内存解析器的情况下做到这一点?

假设您有正确的符号,!peb 在 windbg 中应该可以满足您的需要。

Visual Studio 2015 社区版中,

  1. 通过File | Open | File ...
  2. 打开转储
  3. 播放 按钮开始调试
  4. Debug | Windows | Memory
  5. 打开一段记忆window
  6. 输入$env作为地址。
  7. 打开内存的上下文菜单window
    • select No data
    • select Unicode text

不幸的是,无法以这种方式正确显示换行符(实际上是 '[=15=]' / 0x00)。

WinDbg中,正如另一个答案中已经提到的,使用.symfix c:\symbols; .reload; !peb.

这在 Visual Studio 2017 年有效:

  1. 去看表window
  2. 输入“$env”
  3. 按右边的