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 命令 ...
随机推荐
- SignalR系列教程:SignalR快速入门
---恢复内容开始--- 本篇是SignalR系列教程的第一篇,本篇内容介绍了如何创建SignalR应用,如何利用SignalR搭建简易的聊天室等,本篇内容参考自:http://www.asp.net ...
- 解决yum升级的问题“There was a problem importing one of the Python modules”
yum命令升级的时候,报出这个错误. There was a problem importing one of the Python modules required to run yum. The ...
- 编译kernel:编译
韦东山Linux视频第1期_裸板_UBoot_文件系统_驱动初步第10课第3节 内核启动流程分析之Makefile.WMV 1. 编译内核分三步: make xxx_defconfig [linux ...
- 用反射,将DataRow行转为Object对象
/// <summary> /// 反射辅助类 /// </summary> public class ReflectionHelper { /// <summary&g ...
- Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法
var xmlHttp; //定义变量,用来创建xmlHttp对象 function ajaxfunction(url,onreadystatechangMethod,param){ // 创建xml ...
- CodeForces 462B Appleman and Card Game(贪心)
题目链接:http://codeforces.com/problemset/problem/462/B Appleman has n cards. Each card has an uppercase ...
- N使用exus2打造企业maven仓库(三)
假设项目中,我没有使用maven,我应该做出选择,或为项目.或者用它来推动这个项目从maven.有人会问,为什么maven?无需maven我们没有很好的操作. 这里,只说两件事情我最欣赏:第一点是管理 ...
- linux ftp批量上传和下载文件
一.登录ftp 输入 ftp 192.168.1.111 输入用户名:ftpuser 输入密码:aaa123 二.转到目标目录 输入:cd test ----test为文件夹 三.批量上传 输 ...
- Moss、SharePoint数据库迁移问题(转)
当项目快做完时,大家都要考虑将程序及数据迁移到正式环境部署.但是,如果用SharePoint开发,它会产生很多数据库,到底哪些需要迁移,哪些不需要迁移了?? 请看: 1.配置完成SharePoint后 ...
- 开源数据库连接池之DBCP
本篇介绍几种开源数据库连接池,同时重点讲述如何使用Apache公司的的DBCP数据库连接池. 前面一篇博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能 ...