winDbg 命令使用帮助
srv*C:/symbol*http://msdl.microsoft.com/download/symbols;D:\Desktop\CMS_Dump
symck //检查pdb
lm //显示pdb
//写入日志文件
.logopen d:\output.txt
.logclose
.logfile
!heap -s //显示堆信息
!heap -a 019e0000 //查看泄漏的堆信息
!heap -flt s size //打印所有内存变量(有用)
!address 打印内存信息(有用)
Largest free region(最大可分配的内存块空间)
------------- windbg 中对其动态调试 示例 --------------------
一. 查看初始的堆状态
!heap -s
二. 统计一下这个堆里的内存分配情况,发现 1000 字节的内存分配占了 86.97%,目标就锁定它了。
!heap -stat -h 00230000
size #blocks total ( %) (percent of total busy bytes)
1000 158 - 158000 (86.97)
三. 看一下都是哪些堆申请的
!heap -flt s 1000
四. 挑几个地址看一下调用栈
!heap -p -a 0303aec0
address 0303aec0 found in
_HEAP @ 230000
HEAP_ENTRY Size Prev Flags UserPtr UserSize - state
0303aec0 0221 0000 [00] 0303aed8 01000 - (busy)
7707dd6c ntdll!RtlAllocateHeap+0x00000274
7541f947 KERNELBASE!FindNextFileW+0x00000090
...
...
771a3c45 kernel32!BaseThreadInitThunk+0x0000000e
770637f5 ntdll!__RtlUserThreadStart+0x00000070
770637c8 ntdll!_RtlUserThreadStart+0x0000001b
---------------------------------------
dt -s 4c -n DMS_Server!* //查找4c长度的结构体等
dt -v DMS_Server!DataRow 376c4b58+8 //release头 +8
~*k 查看所有线程的堆栈
//在vs中查看
*(DataRow*)(0x18302b88)
0:004> !address 0x0E41F420
0e419000 : 0e419000 - 00007000
Type 00020000 MEM_PRIVATE
Protect 00000004 PAGE_READWRITE
State 00001000 MEM_COMMIT
Usage RegionUsageStack 栈
Pid.Tid 554.b74
0:004> !address 003f0000
003f0000 : 003f0000 - 00010000
Type 00020000 MEM_PRIVATE
Protect 00000004 PAGE_READWRITE
State 00001000 MEM_COMMIT
Usage RegionUsageHeap 堆
Handle 003f0000
winDbg 命令使用帮助的更多相关文章
- WinDbg 命令三部曲:(一)WinDbg 命令手册
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...
- WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...
- WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...
- windbg命令学习3
3.进程与线程: 既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息.调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺. 3.1. 进程命令 进程命令包括以下:显示进程 ...
- WinDbg 命令手册
WinDbg 命令三部曲:(一)WinDbg 命令手册 本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部 ...
- WinDbg命令三部曲
WinDbg 命令三部曲:(一)WinDbg 命令手册 WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册 WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册
- Windbg命令脚本流程控制语句详解
在Windbg命令脚本一文里,我们介绍了命令脚本语言的的组成要素,在本文里将对语句进行展开的讲解.这些语句主要是流程控制的语句,比如我们常见的条件分子和循环语句等. ; (命令分隔符) 分号(:)字符 ...
- Windbg命令脚本
命令脚本,就是将完成某个特定任务的相关命令组合在一起,保存在脚本文件里,加载到Windbg里执行,达到我们的目的.你可以理解为脚本就是一种语言,就像c或者汇编,但是他不需要编译器将其编译为可执行文件, ...
- windbg命令行选项
我们不仅可以通过GUI的方式使用Windbg,还可以通过命令行的方式使用它,且在有些需求和使用场景下,只能使用命令行模式 windbg命令行使用以下语法: windbg [ -server Serv ...
- GDB 和 windbg 命令对照(转载)
From:http://blog.csdn.net/joeleechj/article/details/10020501 命令 ...
随机推荐
- SuperSocket源码解析之会话生命周期
一 基本概念 会话(Session)是客户端与服务器进行通信的基本单元,也是一个Socket的封装,在http协议中也有Session机制,其主要作用封装一个通信单元socket,负责服务器与客户端消 ...
- 使用jQuery的attr方法来修改onclick值
这篇文章主要介绍了通过jQuery的attr修改onclick值的解决方法 ,需要的朋友可以参考下 var js = "alert('B:' + this.id); return false ...
- PHP - 操作MySQL数据库
第16章 PHP操作MySQL 学习要点: 1.PHP连接到MySQL 2.增删改查 3.其他常用函数 如果你已经具有了使用PHP.SQL和MySQL的丰富经验,现在就可以把所有这些技术组合在一起.P ...
- Eclipse用法和技巧二十一:工程的展示途径
用eclipse阅读代码的时候,有时候代码会变成如图一所示的样子,有时候可能是图二的样子.为什么有时候是图一有时候是图二,笔者也不是很清楚.不过怎么手动设置成图一图二,就是接下来要讲的东西. 1 ...
- cocos2d-x环境的搭建之xcode-本人亲历成功搭建!
cocos2d-x环境的搭建之xcode-本人亲历成功搭建! 写给大家的前言,在学习cocos2d-x的时候自己走了很多的弯路,也遇到了很多很多问题,不管是简单的还是困难的现在都慢慢的一步一步克服了, ...
- Ch02 从零开始实例学习4
演练2-4 添加视图 原文链接:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-vi ...
- python 读取图片的尺寸、分辨率
#需要安装PIL模块 #encoding=gbk#--------------------------------------------------------------------------- ...
- PHP高级编程SPL
这几天,我在学习PHP语言中的SPL. 这个东西应该属于PHP中的高级内容,看上去非常复杂,可是非常实用,所以我做了长篇笔记.不然记不住,以后要用的时候,还是要从头学起. 因为这是供自己參考的笔记,不 ...
- android Activity之间数据传递 Parcelable和Serializable接口的使用
Activity之间传数据时,为了避免麻烦,往往会将一些值封装成对象,然后将整个对象传递过去.传对象的时候有两种情况,一种是实现Parcelable接口,一种是实现Serializable接口.0.解 ...
- CLR和.Net对象
CLR和.Net对象生存周期 前言 1. 基础概念明晰* 1.1 公告语言运行时* 1.2 托管模块* 1.3 对象和类型* 1.4 垃圾回收器 2. 垃圾回收模型* 2.1 为什么需要垃圾回收* 2 ...