检查调试句柄泄漏


 Windows任务管理查看句柄数

任务管理–>查看–>选择列–>勾选“句柄数”

process explorer查看句柄详细信息

process explorer 中双击指定进程打开进程的properties窗口,切换到performance标签页,可以看到比任务管理器更详细的统计数据。

jubing

包括Handles/peak Handles/GDI Handles/USER Handles,peak Handles是句柄占用的峰值。据说Handles直接操作文件,注册表这类东西;而GDI Handles与USER Handles操作的是可见的东西。

Ctrl+H或通过工具栏打开下部窗格并切换到view handles查看句柄详情,找到泄漏的句柄详情。

使用Windbg检查调试句柄泄漏

Windbg提供了强大的扩展命令!htrace,即句柄跟踪(Handle Trace),可以通过操作系统来跟踪所有打开句柄或关闭句柄的调用以及相应的栈回溯,在Windbg输入”!htrace -?”,可以查看命令帮助。

1.运行目标程序,将Windbg附加到这个进程上。
2.然后在Windbg中输入”!htrace -enable”来开启栈回溯,然后通过g命令来运行被调试的程序。
3.执行程序完毕后,在Windbg中运行”!htrace -diff”来自动筛选出没有CLOSE的句柄的栈回溯信息
4.使用lsa 指令找到对应的代码,lsa handlew2!fun4+0x0000006f

还可以中断进程后,使用!htrace -snapshot命令,获得此时进程句柄的镜像,再次运行后使用”!htrace -diff”筛选。

gflags.exe工具可用来打开windows自带的一些调试选项辅助调试。

转载请注明出处:6san.com 
原文地址: http://www.6san.com/1037/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序 获取 用户 unionid

首先明确,获取小程序的unionid需要在后台实现。下面开始详细介绍步骤。 1、首先要获得encryptedData,一种是通过授权函数,一种通过授权按钮 官方文档 https://developers.weixin.qq.com/miniprogram/dev/api/wx.getUserInfo.html?search-k…

前端学习(2627):node安装

1、在使用之前,先类掌握3个东西,明白它们是用来干什么的: npm: nodejs 下的包管理器。 webpack: 它主要用途是通过CommonJS 的语法把所有浏览器端需要发布的静态资源作相应的准备,比如资源的合并和打包。 vue-cli: 用户生成Vu…

jmeter集合点使用方法:Synchronizing Timer

LR中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的。 jmeter中使用Synchronizing Timer实现Lr中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。…

微信模版消息 errmsg: 'invalid weapp pagepath hint: [OtU1OA0868a394]

我是想在公众号的模版消息中,点击直接跳转到体验版小程序的页面中,使用了官方的写法: miniprogram: {// 小程序appidappid: config.wapp.appid,// 打开页面pagepath: "pages/home/ad" },直接报错了,其实需要把pagepath…

前端学习(2628):node.js中LTS和Current的区别

2016 年 10 月 18 日,Node.js v6 LTS (Boron) 发布,这也是 Node.js 启用 LTS 发布计划以来,第一次同时迎来两个 active LTS(v4 与 v6)。这系列文章将讲述 Node.js v6 LTS 带来的一系列变化,本篇主要围绕 LTS 展开。如果…

Android 柱状图

依赖compile org.xclcharts:lib:2.4 自定义view1/*** ClassName DemoView* Description 各个例子view的view基类*/ public class DemoView extends ChartView{public DemoView(Context context) {super(context);// TODO Auto-generated constructor stub}public DemoView(Con…

【mmall】IDEA自动Make

待更新... 转载于:https://www.cnblogs.com/bobi1234/p/7716737.html

谷歌chrome模拟手机浏览网页:iPhone/Android

部分网站通过Http头中的User-Agent判断浏览器类型,如果是手机,显示手机版页面内容,如果是普通PC浏览器,显示电脑版网页内容。 因此谷歌Chrome浏览器,可以通过修改User-Agent和页面分辨率模拟手机浏览器访问网页。如iPh…

js 对象数组常用操作 我用到的

1、删除一个元素 arr.splice(arr.findIndex(v > v.key demokey),1);2、根据某个字段就行排序 function compare(p) { return function (m, n) {const a m[p];const b n[p];return b - a; } } myDeparts.sort(compare("role"));3、在数组开头新增元素 arr.un…

前端学习(2629):npm安装成功配置

修改目录 修改镜像 输入命令npm config set registryhttp://registry.npm.taobao.org 配置镜像站 配置成功 测试镜像行吗

设置WordPress文章关键词自动获取,文章所属分类名称,描述自动获取文章内容,给文章的图片自动加上AlT标签...

最近在优化网站,SEO优化标准:每一篇文章都要有关键词,关键词的个数为3到6个。每一篇文章都要有描述,描述的字数为汉字在70~80之间,在160个字符之间。每一篇文章的图片都要有Alt标签,自动给图片加上Alt标签实…

优化JMeter自身性能

JMeter负载测试时使用GUI界面和较多的收集测试结果的监听器容易造成jmeter的性能瓶颈,远程测试时的控制台尤为明显。提升JMeter负载测试时性能的方法如下: 官方的解决办法: http://jakarta.apache.org/jmeter/usermanual/best-practices.html…

centos 宝塔面板 mongodb 给新的数据库 创建登录用户和密码

之前写过一篇冷环境下mongodb从零开始创建用户密码的文章。 https://blog.csdn.net/solocao/article/details/83347658 当我们需要再新增一个账号时,用下面的方法,和第一篇大同小异: 1、进入mongodb安装目录,下面是宝塔面板的默…

EventBus使用实例,观察者模式

依赖 compile org.greenrobot:eventbus:3.0.0 构造函数方法类(用于传递参数) public class ChangeFragmentEvent {private int viewId;private String ass;public ChangeFragmentEvent(int id,String ss) {this.viewId id;this.assss;}public int getViewId() {return viewId…

前端学习(2630):git安装包下载

下载git时,先进官网看 https://git-scm.com/download/win 然后发现几kb的网速,这是要让我下一年么,找了找网上有没有其他的镜像,发现阿里有一个镜像,下载速度超快。 网址:https://npm.taobao.org/mirror…

coding ssh_exchange_identification: Connection closed by remote host

首先,强力吐槽coding.net。前段时间突然提交不上代码了。老是报错,一怒之下删除.ssh,然后重新根据官方文档配置,我是买的企业版,是付费的。 于是官方文档坑了 https://e.coding.net/help/git/ssh-key/#i-3 感觉这文档…

jmeter模拟http请求/发送gzip数据

jmeter中get请求gzip数据的方法: 在jmeter线程组中添加“http信息头管理器”,并添加名称:Accept-Encoding值: gzip,deflate 注:HTTP信息头Accept-Encoding 是客户端发给服务器,声明客户端支持的编码类型 验证服务器是否返回了gzip…

Java randomString

public static String randomString(int strLength) {Random rnd ThreadLocalRandom.current();StringBuilder ret new StringBuilder();for (int i 0; i < strLength; i) {boolean isChar (rnd.nextInt(2) % 2 0);// 输出字母还是数字if (isChar) { // 字符串int choi…

Service Intent must be explicit

隐性调用需要设置包名 serviceIntent new Intent("ce"); serviceIntent.setPackage("clan.yuanxin.com.myditukaifa");//设置包名 startService(serviceIntent);

前端学习(2631):git安装

git 提交 全部文件 1、git add . git add xx 命令可以将xx文件添加到暂存区&#xff0c;如果有很多改动可以通过get add -A .来一次添加所有改变的文件。注意 -A 选项后面还有一个句点。git add -A 表示添加所有内容&#xff0c;git add . 表示添加新文件和编辑过的文件不包括…