cra*_*ice 2 c++ windbg crash-dumps
我想检查进程的本机堆,以查看内存中存在的本机类以及它们的大小.它相当于sos!dumpheap -stat命令.是否有可能在原生方面做到这一点?
最简洁的答案是不.您可以查看堆并查看已分配块的大小,但本机代码生命的基本事实之一是您不能依赖它将类型标记放入已分配的对象中,因此堆上的对象通常没有足够的信息来确定其类型.
当您处理类似Windows GDI堆(它将类型标记放入已分配的对象)之类的东西时,您可以执行此操作,但对于仅分配和使用内存的其他代码,您所需的信息就不存在了.
我也许应该补充:如果你的调试信息(和执行速度并不关心),它可能是能够追踪分配和类型到他们指定的,所以你能够从内存到实际分配的块落后工作对象类型.一些堆调试工具已经完成了至少与此类似的事情,尽管我并不知道任何与您要求的完全相同的事情.