如何从小型转储中获取环境变量?
How to get environment variables from minidump?
我得到了一个使用 procdump -ma
创建的小型转储(故障转储)。我可以在 VS2013 和 WinDbg 上打开它,但是我需要知道哪些环境变量被发送到该进程。有没有一种方法可以在不编写内存解析器的情况下做到这一点?
假设您有正确的符号,!peb
在 windbg 中应该可以满足您的需要。
在 Visual Studio 2015 社区版中,
- 通过
File | Open | File ...
打开转储
- 按 播放 按钮开始调试
- 从
Debug | Windows | Memory
打开一段记忆window
- 输入
$env
作为地址。
- 打开内存的上下文菜单window
- select
No data
- select
Unicode text
不幸的是,无法以这种方式正确显示换行符(实际上是 '[=15=]'
/ 0x00
)。
在WinDbg中,正如另一个答案中已经提到的,使用.symfix c:\symbols; .reload; !peb
.
这在 Visual Studio 2017 年有效:
- 去看表window
- 输入“$env”
- 按右边的
我得到了一个使用 procdump -ma
创建的小型转储(故障转储)。我可以在 VS2013 和 WinDbg 上打开它,但是我需要知道哪些环境变量被发送到该进程。有没有一种方法可以在不编写内存解析器的情况下做到这一点?
假设您有正确的符号,!peb
在 windbg 中应该可以满足您的需要。
在 Visual Studio 2015 社区版中,
- 通过
File | Open | File ...
打开转储
- 按 播放 按钮开始调试
- 从
Debug | Windows | Memory
打开一段记忆window
- 输入
$env
作为地址。 - 打开内存的上下文菜单window
- select
No data
- select
Unicode text
- select
不幸的是,无法以这种方式正确显示换行符(实际上是 '[=15=]'
/ 0x00
)。
在WinDbg中,正如另一个答案中已经提到的,使用.symfix c:\symbols; .reload; !peb
.
这在 Visual Studio 2017 年有效:
- 去看表window
- 输入“$env”
- 按右边的