01-windows调试工具(ProcDump使用)
- 工具msdn下载地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
- csdn的下载地址:windows调试工具-C++文档类资源-CSDN下载
- ProcDump简介:
- 详细的使用说明参考:https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
- ProcDump 是一个命令行实用工具,其主要用途是监视应用程序的 CPU 峰值,并在出现峰值期间生成故障转储。
- ProcDump 还包括挂起窗口监视 (使用 Windows 和任务管理器使用) 、未经处理的异常监视的窗口挂起定义,并且可以基于系统性能计数器的值生成转储。
- 监视指定的进程到程序异常的时候,生成DMP文件
- 进程的运行期间生成DMP文件
- ProcDump的转储类型:
-mm 写入“Mini”转储文件。 (默认值)
- 包括直接或间接引用的内存 (堆栈及其) 引用的内容。
- 包括 (进程、线程、模块、句柄、地址空间等) 的所有元数据。-ma 写入“完整”转储文件。
- 包括所有内存 (映像、映射和专用) 。
- 包括 (进程、线程、模块、句柄、地址空间等) 的所有元数据。-mt 写入“会审”转储文件。
- 包括直接引用的内存 (堆栈) 。
- 包括有限的元数据 (进程、线程、模块和句柄) 。
- 尝试删除敏感信息,但不能保证。-mp 编写“MiniPlus”转储文件。
- 包括所有专用内存和所有读/写映像或映射内存。
- 包括 (进程、线程、模块、句柄、地址空间等) 的所有元数据。
- 为了最小化大小,将排除超过 512MB 的最大专用内存区域。
内存区域定义为相同大小的内存分配的总和。
转储与完整转储一样详细,但大小为 10%-75%。
- 注意:由于调试限制,CLR 进程将转储为 Full (-ma)-mc 写入“自定义”转储文件。
- 包括由指定的MINIDUMP_TYPE
掩码 (十六进制) 定义的内存和元数据-md 编写“回调”转储文件。
- 包括由MiniDumpWriteDump
指定 DLL 命名MiniDumpCallbackRoutine
的回调例程定义的内存。
- 包括 (进程、线程、模块、句柄、地址空间等) 的所有元数据。-mk 此外,还要编写“内核”转储文件。
- 包括进程中线程的内核堆栈。
- 使用克隆 ()-mk
时,OS 不支持内核转储 (-r
) 。
- 使用多个转储大小时,将针对每个转储大小进行内核转储
条件说明:
条件 说明 -a 避免中断。 需要 -r
。 如果触发器会导致目标由于超出并发转储限制而长时间挂起,则将跳过该触发器。-at 避免超时时中断。 在几秒钟内 N
取消触发器的收集。-b 将调试断点视为异常, () 忽略它们。 -c CPU 阈值高于该阈值,用于创建进程的转储。 -cl CPU 阈值低于该阈值,用于创建进程的转储。 -dc 将指定的字符串添加到生成的转储注释。 -e 当进程遇到未经处理的异常时写入转储。
包括 以1
在出现第一次机会异常时创建转储。
添加-ld
以在加载 DLL (模块) 时创建转储, (筛选) 应用。
添加-ud
以在卸载 DLL (模块) 时创建转储, (筛选) 应用。
添加-ct
以在创建线程时创建转储。
添加-et
以在线程退出时创建转储。-f 筛选器 (包括) 异常内容、调试日志记录和 DLL 加载/卸载时的文件名。 支持通配符 (*) 。 -fx 筛选器 (DLL 加载/卸载时排除异常内容、调试日志记录和文件名的) 。 支持通配符 (*) 。 -g 在托管进程中作为本机调试器运行, (无互操作) 。 -h 如果进程有一个挂起的窗口, (至少 5 秒) 不响应窗口消息,则写入转储。 -k 克隆 ( -r
) 后或在转储收集结束时终止进程。-l 显示进程的调试日志记录。 -m 创建转储的内存提交阈值(以 MB 为单位)。 -ml 当内存提交低于指定的 MB 值时触发。 -n 退出前要写入的转储数。 -o 覆盖现有转储文件。 -p 当性能计数器达到或超过指定的阈值时触发。 某些计数器和/或实例名称可能区分大小写。 -pl 当性能计数器低于指定的阈值时触发。 -r 使用克隆进行转储。 并发限制是可选的, (默认为 1,最大为 5) 。 使用克隆 () -mk
时,OS 不支持内核转储 (-r
) 。 警告: 高并发值可能会影响系统性能。
- Windows 7:使用反射。 OS 不支持-e
。
- Windows 8.0:使用反射。 OS 不支持-e
。
- Windows 8.1+:使用 PSS。 支持所有触发器类型。-s 写入转储前的连续秒 (默认值为 10) 。 -t 进程终止时写入转储。 -u Treat CPU usage relative to a single core (used with -c
).-v 仅调试: 详细输出。 -w 如果指定的进程未运行,请等待启动。 -wer 将 (最大的) 转储排队到Windows 错误报告。 -x 使用可选参数启动指定的映像。 如果是应用商店应用程序或包,ProcDump 将在下次激活 (仅) 启动。 -y 隐藏: 应用商店应用程序激活。 -64 默认情况下,在 64 位 Windows 上运行时,ProcDump 将捕获 32 位进程的 32 位转储。 此选项替代以创建 64 位转储。 仅用于 WOW64 子系统调试。 - Procdump的异常DMP文件生成
- 32位系统打开procdump.exe,64位系统则打开procdump64.exe
- 指定某一个进程,立即生成一个dump文件,如果进程不存在,等待进程启动
- procdump64.exe -w 进程名称 (进程启动后立马生成dmp文件)
- procdump64.exe -e -w 进程名称 (进程异常后立马生成dmp文件)
- procdump -ma 4778(直接生成进程号为4778的Full Dump)
- procdump64.exe -ma -t 进程ID(指定的进程异常后生成一个全dmp文件)
- ProcDump高CPU的DMP文件生成
- 当系统 CPU 使用率持续 5 秒超过 70% 时,连续抓 3 个 Full Dump
- procdump -c 70 -s 5 -ma -n 3 进程名称/进程ID
- 当系统 CPU 使用率超过 80%,抓取test.exe 进程的 Mini Dump。
- procdump test -p "\Processor(_Total)\% Processor Time" 80
- 当test.exe的句柄数超过1000时,抓取dmp文件
- procdump -ma test -p "\Process(test)\Handle Count" 10000
- 当系统 CPU 使用率持续 5 秒超过 70% 时,连续抓 3 个 Full Dump
- windbg分析:
- 将生成的dmp文件,使用windbg工具进行分析
01-windows调试工具(ProcDump使用)相关推荐
- Windows调试工具入门 — windebug
转载自https://blog.csdn.net/zmqblog/article/details/17334637 一. 引子 Debugging Tools for Windows是微软发布的一套 ...
- libreoffice 01 windows 版本编译
01 基本信息 目前office开源版本主流是 libreoffice.其前身是openoffice. 官网:https://zh-cn.libreoffice.org/ wiki: https:// ...
- Windows Workflow Foundation实验01——Windows Workflow Foundation快速入门(练习四)
使用监听.延迟和基于事件的自定义活动 在这个练习中你将会扩展在练习三中创建的报销审核工作流,来提供给管理者审核或者拒绝大于1000美元的报销申请的管理功能.你将会熟悉一些额外的活动,如监听.延迟和一些 ...
- 01.Windows系统安装
目录 1.Windows分类 2.Windows安装步骤 3.Windows安装方法 云计算分类(拓展): 公有云:一般租给小型公司或个人: 私有云:大型公司专用. 1.Windows分类 1.个人版 ...
- 【认证篇 / 远程】(7.0) ❀ 01. Windows Server 2022域服务器安装与配置 ❀ FortiGate 防火墙
[简介]中大型企业通常会建立域服务器用来管理帐号信息及访问权限,只有授权的员工才可以访问内部网络.同样,我们也可以利用域服务器内的用户帐号及密码,对通过FortiGate防火墙的流量进行验证,以判断是 ...
- 01.windows单机版zookeeper下载与安装
1.准备 windows10 JDK:jdk1.8.0_144 官网安装教程(需要是浏览即可):http://zookeeper.apache.org/doc/r3.5.5/zookeeperStar ...
- windows调试工具集
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
- Windows高级调试 调试工具简介
第一部分 概 述 第1章 调试工具简介 许多技术性的书籍和文章都指出了在正确的软件设计和软件工程原则中包含的重要性.有些书侧重于介绍在方法与实践之间的均衡性,而有些书则注重对方法的描 ...
- Windows 句柄泄露学习总结
句柄泄露实例分析 http://www.cnblogs.com/Leo_wl/p/5397274.html 在上篇文章.NET对象与Windows句柄(二):句柄分类和.NET句柄泄露的例子中,我们有 ...
最新文章
- Python - json和simplejson比较(转)
- java 自定义validate_Golang-03 自定义validator,实现java注解功能-Go语言中文社区
- 外接显示器设置_如何为一台电脑设置两个显示器
- kindeditor图片服务器php,kindeditor 粘贴网络图片保存到服务器
- 图两点间的最短路径,所有路径算法C语言实现
- python处理二进制文件_python如何对文件进行二进制写操作
- 转Java 开发环境配置
- 联想服务器查看运行状态,服务器硬件批量监控工具
- MySQL8.0软件安装失败常见问题
- 学计算机专业长白头发,程序员白头发是怎样一种感受?
- 当我们谈注册中心时我们谈什么
- 微信小程序实现预览图片
- 如涵控股完成私有化交易:赴美上市刚满两年,市值已缩水超七成
- 如何用mshtml获得Javascript中function的返回值[mshtml]
- 2023 zibll 子比主题 美化插件 全开源
- 业务流程即服务:业务的重新构想
- 大数据平台,Hadoop集群架构,概述及原理
- 电子膨胀阀的原理、使用和特点,及其与热力膨胀阀的性能比较
- 获取视频文件格式信息的工具和方法
- android蓝牙耳机按键流程,蓝牙耳机按键在Android侧的处理流程