!heap -x -v和!heap -flt之间的矛盾

  发布于 2022-12-11 14:06

我正在分析一个显示奇怪内容的转储:命令!heap -x -v hexadecimal_address和命令之间似乎存在矛盾!heap -flt s size_of_block

我正在询问悬挂的指针.在这个转储中,这个悬空指针碰巧是:0x0bdd00c0

要检索有关我使用!heap -x -v 0bdd00c0哪个返回的堆内存块的信息

    Entry     User      Heap      Segment       Size  PrevSize  Unused    Flags
    -----------------------------------------------------------------------------
    0bdd00b8  0bdd00c0  003b0000  0bc00000        98        20         8  busy

这表明在这种情况下:

内存块处于busy模式(大部分时间在我的其他转储中,内存在这里是免费的)

内存块是0x98字节大

内存块在堆内部进行管理003b0000.

让我困惑的是:

当我启动时!heap -flt s 98(只想观察其他具有相同大小的对象)我得到的结果不会显示我调查的指针0bdd00c0

      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
   _HEAP @ 3b0000
       14b24fa8 0014 0014  [01]   14b24fb0    00098 - (busy)
       0bc645a8 0014 0014  [01]   0bc645b0    00098 - (busy)
       0bc66398 0014 0014  [01]   0bc663a0    00098 - (busy)
       0bcbedf8 0014 0014  [01]   0bcbee00    00098 - (busy)
       0bce2cc8 0014 0014  [01]   0bce2cd0    00098 - (busy)
       0bceff88 0014 0014  [00]   0bceff90    00098 - (free)
       0bdf2f78 0014 0014  [01]   0bdf2f80    00098 - (busy)
       0be28c50 0014 0014  [01]   0be28c58    00098 - (busy)
       0be57470 0014 0014  [00]   0be57478    00098 - (free)
       0beed050 0014 0014  [01]   0beed058    00098 - (busy)
       0bf1aaf0 0014 0014  [00]   0bf1aaf8    00098 - (free)
       0bf214c0 0014 0014  [00]   0bf214c8    00098 - (free)
       0bf99bf0 0014 0014  [00]   0bf99bf8    00098 - (free)

(我只给你了一堆3b0000相关摘录)

所以我得出的结论是,似乎存在矛盾.

我在做/假设有什么不对吗?我该怎么做才能理解什么是错的?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有