!address 内存泄露查询

1:找到所有巨块内存,按照内存降序排序

!address
+ 2afef000 4da00000 22a11000 <unknown> 554M
+ 54389000 69d10000 15987000 <unknown> 345M
+ 69d85000 6e340000 45bb000 <unknown> 69M
+ 77d93000 7bf90000 41fd000 <unknown> 65M
+ 500dd000 53510000 3433000 <unknown> 52M
+ 7c0b1000 7ee70000 2dbf000 <unknown> 45M
+ 4da0e000 50080000 2672000 <unknown>
+ 713c0000 72ab0000 16f0000 <unknown>
+ 6eaf5000 6fff0000 14fb000 <unknown>


2: 找到哪里使用了巨块内存

0:243> s -d 0 l?-1 2afef000
2a020028 2afef000 000006b6 0000000f 00000000 ...*............


3: 查看使用了巨块内存的地方,那个位置的内存信息
!address 2a020028

Usage: Heap
Base Address: 2a020000
End Address: 2a0c3000
Region Size: 000a3000 ( 652.000 kB)
State: 00001000 MEM_COMMIT
Protect: 00000004 PAGE_READWRITE
Type: 00020000 MEM_PRIVATE
Allocation Base: 2a020000
Allocation Protect: 00000004 PAGE_READWRITE
More info: heap owning the address: !heap 0x1c20000
More info: heap segment
More info: heap entry containing the address: !heap -x 0x2a020028


4: 这是一个堆内存,看堆内存的信息位置

!heap -x 0x2a020028
Entry User Heap Segment Size PrevSize Unused Flags
-----------------------------------------------------------------------------
2a020000 2a020008 01c20000 2a020000 40 0 1 busy

 

5:符号解析
dps 2a020000
如果顺利的话,当前指令执行之后,会立刻解析出一批符号,
这批符号是针对当前内存地址的符号

posted @   穷到底  阅读(326)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示