verifier 调试内存泄露

没啥技术含量,都是老段子了,

这次记下来,只是我想说,我也做过,留个念相。

前置条件,电脑里面必须得有Verifier,有了之后把自己的驱动加进去,

WinDBG上双机,然后就可以跑了,跑一段时间就可以停了,

(这时候可以说一下,其实中间可以多次断下来,然后用 !poolused 命令对应TAG,来看内存使用量的,心里有个数)

驱动停了之后,果断卸载驱动,

这时候如果有内存泄露,就会触发一个蓝屏异常,然后就BSOD了,

异常错误码是 DRIVER_VERIFIER_DETECTED_VIOLATION (c4),

4个参数,第二个参数是一个WSTR,记录了出现问题的驱动名字,可以db一下,

第四个参数,实际上就是有多少个申请没释放了,

analyze 了之后,就是 !verifier 3 XXX.sys 了,

其实,前者只是为了验证一下内存相关的位置,

后一条命令的目的是为了让工具输出,到底是哪里出的问题,

输出结果分三段,内存地址,内存长度,申请的代码地址,

剩下的是什么。。。改呗。。。

时间: 2024-10-10 07:22:44

verifier 调试内存泄露的相关文章

[Android Memory] App调试内存泄露之Context篇(上)

转载自:http://www.cnblogs.com/qianxudetianxia/p/3645106.html Context作为最基本的上下文,承载着Activity,Service等最基本组件.当有对象引用到Activity,并不能被回收释放,必将造成大范围的对象无法被回收释放,进而造成内存泄漏. 下面针对一些常用场景逐一分析. 1. CallBack对象的引用 先看一段代码: @Override protectedvoid onCreate(Bundle state){ super.o

[Android Memory] App调试内存泄露之Context篇(下)

转载地址:http://www.cnblogs.com/qianxudetianxia/p/3655475.html 5. AsyncTask对象 我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncTask等系统自带类去做事情,当然无可厚非. 但是AsyncTask确实需要额外注意一下.它的泄露原理和前面Handler,Thread泄露的原理差不多,它的生命周期和Activity不一定一致. 解决方案是:在activity退出的时候,终止AsyncTask中的后台任务. 但是,问题是如

android 内存泄露调试

一.概述 1 二.Android(Java)中常见的容易引起内存泄漏的不良代码 1 (一) 查询数据库没有关闭游标 2 (二) 构造Adapter时,没有使用缓存的 convertView 3 (三) Bitmap对象不在使用时调用recycle()释放内存 4 (四) 释放对象的引用 4 (五) 其他 5 三.内存监测工具 DDMS --> Heap 5 四.内存分析工具 MAT(Memory Analyzer Tool) 7 (一) 生成.hprof文件 7 (二) 使用MAT导入.hpro

android内存泄露调试,Heap,MAT

三.内存监测工具 DDMS --> Heap 无论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方.Android tools中的DDMS就带有一个很不错的内存监测工具Heap(这里我使用eclipse的ADT插件,并以真机为例,在模拟器中的情况类似).用Heap监测应用进程使用内存情况的步骤如下: 1. 启动eclipse后,切换到DDMS透视图,并确认Devices视图.Heap视图都是打开的: 2. 将手机通过USB链接至电

Android内存泄露调试

版权声明:本文为博主原创文章,未经博主允许不得转载. 版权声明:本文为兄弟连原创文章,未经博主允许不得转载. Android 内存泄漏调试 一.概述 如果我们编写的代码当中有太多的对内存使用不当的地方,难免会使得我们的设备运行缓慢,甚至是死机.为了能够使得 Android 应用程序安全且快速的运行, Android 的每个应用程序都会使用一个专有的 Dalvik 虚拟机实例来运行,即每个应用程序都是在属于自己的进程中运行的.一方面,如果程序在运行过程中出现了内存泄漏的问题,仅仅会使得自己的 进程

如何解决内存泄露:笨方法手动调试

上篇文章介绍了内存泄露以及避免方法,本篇文章介绍当内存泄露发生时,如何解决 1. 笨方法手动调试 1 检查代码是否每一个new.malloc 都有对应的 delete.free 2 观察有哪些可能分配内存和释放内存的代码,在其上下添加断点,以debug模式运行 3 打开任务管理器,查看调试程序的内存占用, 4 逐个排除: - 看运行哪些语句时内存占用增加 - 看运行释放内存语句后,内存占用是否减少 - 查看释放后的内存是否仍然存在 5 针对第4步找出内存释放失败的语句,通过查看内存的详细信息,逐

记一次内存泄露调试(memory leak)-Driver Monkey

Author:DriverMonkey Mail:[email protected] Phone:13410905075 QQ:196568501 硬件环境:AM335X 软件环境:linux 3.2 现象:1)系统运行一晚上,配置硬件操作失效 2)系统放置在那,没有用户输入会自己死机 调试过程: 第一步:分析硬件配置失效原因,怀疑配置硬件代码有问题 最后发现 代码 调用 system() 函数配置硬件没有调用成功 返回值 为 -1. 第二步: 继续上一步 分析 system() 在什么情况下会

转:Android开发:使用DDMS Heap进行内存泄露调试

无论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方.Android tools中的DDMS就带有一个很不错的内存监测工具Heap,本文讲解了如何使用Heap来进行内存监测. 内存监测工具 DDMS --> Heap 这里我使用eclipse的ADT插件,并以真机为例,在模拟器中的情况类似.用 Heap监测应用进程使用内存情况的步骤如下: 1. 启动eclipse后,切换到DDMS透视图,并确认Devices视图.Heap视图都是

记一次调试python内存泄露的问题

转载:http://www.jianshu.com/p/2d06a1a01cc3 这两天由于公司需要, 自己编写了一个用于接收dicom文件(医学图像文件)的server. 经过各种coding-debuging-coding-debuging之后, 终于上线了, 上线后心里美滋滋的, 一切正常. 第二天一上班, 负责人和我说接收太慢了, 卡的要死. 我想难道是python本身的问题?(程序员本征思维)我好奇的打开了终端输入 ps -aux | grep python 找到进程id 即 2161