Mag*_*arf 8 windows heap windbg wow64 windows-8
首先,这不是关于如何进行堆分析的一般性问题,因为我在早期版本的Windows中非常熟悉.
然而,我想知道的是,如果有人设法对64位Windows 8上运行WOW64层的32位应用程序执行堆分析,那么Windows 8是关键词吗?
运行Windows 7和Windows调试工具我只是使用gflags应用用户堆栈和堆标记,然后使用x86版本的WinDbg附加到进程,只获得32位上下文(因为我通常不是对WOW64层本身感兴趣).堆信息显示完美.
在Windows 8上,执行相同的过程,添加gflags并启动我的进程,启动后的内存使用量从40增加到140MB,表明gflags已经启动.
但是,无论我如何尝试,WinDbg或umdh都无法获取任何堆信息.通过运行x64版本并将.effmach切换到32位上下文时,使用x86版本的旧方法或文档中描述的方式都不是通过WOW64运行的.
此外,我已经尝试使用适用于Windows的Windows 7和Windows 8版本的调试工具,因此在Windows 7上提供良好结果的相同工具在Windows 8上的行为不同.
我目前的猜测是,Windows 8管理堆的方式的变化(我已经看过几篇关于互联网的文章)可能还没有完全更新/反映在Windows的调试工具中.我假设(我自己的使用场景只涉及WOW64上下文中的32位进程,所以我不确定)对于没有WOW64层的应用程序的堆分析按预期工作,但WOW64当前是阻塞程序这里.
我很想知道我做错了什么,或者当前工具是否存在问题.我目前已经退回到在VM中运行Windows 7来进行内存分析.
那么,在Windows 8中WOW64下对win32应用程序进行堆分析是否有任何成功,如果是这样的话?
小智 1
您尝试过EGGHUNTER工具吗?还有一个Intel Parallel Studio XE 2013 试用版,有很多工具可供使用。它连接到您的 IDE VS 2010 或 2012,然后您可以测试运行您的应用程序。一般功能
\n\n\nIntel\xc2\xae Parallel Studio XE 包含下一代软件
\n开发工具: \xef\x82\xb7 Intel\xc2\xae C、C++ 和 Fortran 编译器 \xe2\x80\x93
\n业界领先的编译器 \xef\x82\xb7 Intel\xc2\xae MKL 和 Intel\xc2\xae IPP \xe2\x80\x93 性能\n库 \xef\x82\xb7 Intel\xc2\xae 线程构建模块和 Intel\xc2 \xae Cilk\xe2\x84\xa2 Plus \xe2\x80\x93\n并行编程模型 \xef\x82\xb7 Intel\xc2\xae Advisor XE \xe2\x80\x93 线程助手\n\xef\x82\xb7 Intel \xc2\xae VTune\xe2\x84\xa2 放大器 XE \xe2\x80\x93 性能和线程分析器 \xef\x82\xb7 Intel\xc2\xae\nInspector XE \xe2\x80\x93 内存和线程检查器 \xef\ x82\xb7 静态分析\xe2\x80\x93 定位\n难以发现缺陷
\n
我想这会对你有帮助。谢谢
\n