!heap命令问题 Windbg

!heap是查看进程中堆情况的命令

使用后有如下提示:

*************************************************************************
***    Your debugger is not using the correct symbols                       ***
***                                                                                 ***
***    In order for this command to work properly, your symbol path       ***
***    must point to .pdb files that have full type information.            ***
***                                                                               ***
***    Certain .pdb files (such as the public OS symbols) do not            ***
***    contain the required information.  Contact the group that            ***
***    provided you with these symbols if you need this command to        ***
***    work.                                                                        ***
***                                                                                ***
***    Type referenced: ntdll!_HEAP_ENTRY                                     ***
************************************************************************* 

 !heap这个扩展命令需要系统DLL(NTDLL和KERNEL32.DLL)的符号,上面的提示是说缺少ntdll!_HEAP_ENTRY(描述堆块的基本数据结构,见《软件调试》P658)这个结构的符号。
解决的方法是连接符号服务器(P935),让WinDBG自动下载系统文件的符号,也就是在连着互联网的情况下执行下面的两条命令:
.symfix c:symbols (设置符号服务器,并把c:symbols作为下游符号库)
.reload (重新加载符号)

注:c:symbols文件夹最好在你的工程中创建。

.symfix c:symbols

.reload

原文地址:https://www.cnblogs.com/antigao/p/4380762.html