Windows下使用Gflags和UMDH查找内存泄漏
GFlags和UMDH与WinDbg一样,都是Debugging Tools for Windows里的工具。
1.设置符号路径
去微软官网下载对应的操作系统的符号安装文件,并安装到某个目录,如C:\WINDOWS\Symbols。
设置符号路径_NT_SYMBOL_PATH环境变量srv*C:/WINDOWS/Symbols*http://msdl.microsoft.com/download/symbols。
2.编写测试程序MemoryLeakTest
#include <iostream>
using namespace std; int NewMemoryTest1()
{
char *p = new char[];
memset(p, 0x00, 1024*sizeof(char));
return ;
} int MallocMemoryTest1()
{
char *p = (char*)malloc(*sizeof(char));
memset(p, 0x00, 1024*sizeof(char));
return ;
} int main()
{
int i = ;
cin >> i;
NewMemoryTest1();
MallocMemoryTest1();
cin >> i; return ;
}
3.打开Windows命令行窗口,在命令行中输入:GFlags /i MemoryLeakTest.exe +ust。
输出:
Current Registry Settings for MemoryLeakTest.exe executable are: 00001000
ust - Create user mode stack trace database
4.运行MemoryLeakTest.exe程序。
5.在命令行中输入:UMDH -pn:MemoryLeakTest.exe -f:D:\Snap1.txt。
6.在MemoryLeakTest.exe程序命令行中输输入任意数字,使程序执行NewMemoryTest1和MallocMemoryTest1函数。
7.在命令行中输入:UMDH -pn:MemoryLeakTest.exe -f:D:\Snap2.txt。
8.在命令行中输入:UMDH -d D:\Snap1.txt D:\Snap2.txt > D:\Result.txt。
在D:\Result.txt中有内存泄露的信息,可对比程序源代码进行分析。
Windows下使用Gflags和UMDH查找内存泄漏的更多相关文章
- 【转】使用UMDH查找内存泄漏
转载出处:http://blog.csdn.net/phiger/article/details/1932141 Umdh 是 Debugging Tools for Windows 里面的一个工具, ...
- Windows下使用Gflags检查内存越界
环境:windows xp. vs2005 Gflags可用于查找内存越界的问题. 访问一块申请的内存时,当访问的地址超过申请的范围时,就发生了内存越界的问题. 编写测试程序MemoryOverflo ...
- 在VS2013平台下如何快速解决c++代码内存泄漏问题
在学习FPS3000人脸关键点定位算法时,发现github上的源码,存在大量的内存泄漏问题,在训练的时发现内存一直在增长,测试的时候也存在内存无法彻底释放的问题. 一直以为是存放模型参数vector& ...
- 利用Java剖析工具JProfiler查找内存泄漏的方法
本文主要介绍如何如何利用在使用JProfiler时意识到内存泄漏以及查找内存泄漏的几种方法. 工具/原料 JProfiler 方法/步骤 JProfiler的内存视图会话提供了内存使用情况的动 ...
- 使用UMDH查找内存泄露
参考文献: 1.http://blog.csdn.net/wcjy07220114/article/details/6962140 2.http://blog.csdn.net/chenyujing1 ...
- windows下配置tomcat服务器的jvm内存大小的两种方式
难得遇到一次java堆内存溢出(心里想着,终于可以来一次jvm性能优化了$$) 先看下报错信息, java.lang.OutOfMemoryError: GC overhead limit excee ...
- Linux 下用 valgrind 查找内存泄漏小例子
1.安装 valgrind yum install valgrind 2.测试用例 main.cpp #include <iostream> using namespace std; st ...
- java命令--jmap命令使用(查找内存泄漏对象)
转自:https://www.cnblogs.com/kongzhongqijing/articles/3621163.html jdk安装后会自带一些小工具,jmap命令(Java Memory M ...
- Release编译模式下,事件是否会引起内存泄漏问题初步研究
题记:不常发生的事件内存泄漏现象 想必有些朋友也常常使用事件,但是很少解除事件挂钩,程序也没有听说过内存泄漏之类的问题.幸运的是,在某些情况下,的确不会出问题,很多年前做的项目就跑得好好的,包括我也是 ...
随机推荐
- JavaScript 词法、静态、动态作用域初级理解
开始之前 由于本人也是JavaScript初学者,记录学习经过,怕以后会忘记. 对于JavaScript 初学者来说,最难的不是代码部分,而是对很多书籍中的术语的理解,大多时候想要理解一段JavaSc ...
- android studio 导入第三方库的记录
android studio 导入第三方库的记录.jar包 和 库 一.jar包 1.jar包的话很简单,首先换成project模式,将你要用的jar包复制到lib下面.如图 2.然后右键选择Add ...
- Android 程序打包及签名(转)
为什么要签名??? 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来 ...
- Dubbo原码解析(version:2.5.3)
一.启动dubbo借助spring的schemas来启动(dubbo.jar/META-INF/spring.schemas).在dubbo.jar/META-INF/spring.handlers里 ...
- 如何在windows上测试iphone?
本教程将会让你没有mac照样测试iphone,这是我折腾了几天总结下来的,希望对大家有用. 先来几张效果图吧 方法很简单,但是配置起来说实话有点麻烦,先在电脑上安装vmware,在安装osx系统,在安 ...
- swift--CATransform3D的简单介绍
今天来了解下CATransform3D的一些基本的知识.CATransform3D是一个用于处理3D形变的类,其可以改变控件的平移.缩放.旋转.斜交等,其坐标系统采用的是三维坐标系,即向右为x轴正方向 ...
- iOS 严重问题解释(crash)
问题1:Exception Type: 00000020 Exception Codes: 0x000000008badf00d Exception Note: SIMULATED (this is ...
- 深度缓存ZBuffer线性化
double linearizeDepth(double nearz,double farz,double depth) { depth = 2.0 * depth - 1.0; return (2. ...
- jquery 动态展示查询条件
<table class="queryTable" width="100%" > <tr> <td class="que ...
- 如何设置select只读不可编辑且select的值可传递
1. <select style="width:195px" name="role" id="role" onfocus=" ...