Windows随机崩溃时如何捕获进程转储

Windows随机崩溃时如何捕获进程转储

57243
Created On 05/22/22 12:47 PM - Last Modified 07/13/23 07:53 AM


Objective


在进程随机崩溃的情况下,我们需要使用捕获随机进程转储的专用工具
过程转储是Microsoft Sys 内部工具我们可以为此使用

 



Environment


  • 视窗 OS
  • 故障排除场景CortexXDR进程崩溃的地方


Procedure


下载 Procdump微软产品转储

当您执行后续步骤时,Procdump 将在崩溃时自动转储进程的内存(完整进程转储)。

  1. 为转储创建一个文件夹
  2. 从 procdump.exe 所在的位置运行下一个命令: procdump -ma -i <要转储到的文件夹>
例如: procdump -ma -i c:\转储
 
  • procdump 命令将 procdump 设置为在出现未处理的异常(崩溃)时运行。
  • 这意味着每当任何进程崩溃时,都会获取该进程的转储并将其保存在提供的路径中。


Additional Information


Palo Alto 不支持该工具,以防客户不知道此工具来捕获进程转储。


用法:procdump [-a] [[-c|-clCPU usage] [-u] [-s seconds]] [-n exceeds] [-e [1 [-b]] [-f <filter,...>] [-g] [-h] [-l] [-m|-ml 提交用法] [-ma | -mp] [-o] [-p|-pl 计数器阈值] [-r] [-t] [-d <回调DLL>] [-64] <[-w] <进程名称或服务名称或PID> [转储文件] | -i <转储文件> | -你 | -x <转储文件> <图像文件> [参数] >] [-? [-e]
范围描述
-A避免停电。 需要 -r。 如果触发器将导致目标由于超过并发转储限制而长时间挂起,则将跳过触发器。
-在避免超时中断。 取消触发器的收集N秒。
-b将调试断点视为异常(否则忽略它们)。
-CCPU 创建进程转储的阈值。
-clCPU 低于此阈值创建进程转储。
-d调用指定的名为 MiniDumpCallbackRoutine 的小型转储回调例程DLL.
-e当进程遇到未处理的异常时写入转储。 包括 1 以在第一次机会异常时创建转储。
-F过滤第一次机会异常。 支持通配符 (*)。 要仅显示名称而不转储,请使用空白 ("") 过滤器。
-fx过滤(排除)异常和调试日志记录的内容。 支持通配符。
-G在托管进程中作为本机调试器运行(无互操作)。
-H如果进程有一个挂起的窗口(至少 5 秒内不响应窗口消息),则写入转储。
-我安装 ProcDump 作为 AeDebug 事后调试器。 仅支持 -ma、-mp、-d 和 -r 作为附加选项。
-k克隆 (-r) 后或转储收集结束时终止进程
-l显示进程的调试日志。
-m内存提交阈值MB在其中创建转储。
-嘛写一个包含所有进程内存的转储文件。 默认转储格式仅包括线程和句柄信息。
-mc编写自定义转储文件。 包括由指定的 MINIDUMP_TYPE 掩码(十六进制)定义的内存。
-MD编写回调转储文件。 包括由指定的名为 MiniDumpCallbackRoutine 的 MiniDumpWriteDump 回调例程定义的内存DLL.
-mk还要写一个内核转储文件。 包括进程中线程的内核堆栈。 OS 使用克隆 (-r) 时不支持内核转储 (-mk)。 使用多个转储大小时,将为每个转储大小获取一个内核转储。
-毫升当内存提交低于指定值时触发MB价值。
-毫米写一个小型转储文件(默认)。
-mp写一个包含线程和句柄信息的转储文件,以及所有读/写进程内存。 为了最小化转储大小,搜索大于 512MB 的内存区域,如果找到,则排除最大的区域。 A 内存区域是相同大小的内存分配区域的集合。 删除此(缓存)内存可减少 Exchange 和SQL服务器转储超过 90%。
-n退出前要写入的转储数。
-o覆盖现有的转储文件。
-p超过阈值时在指定的性能计数器上触发。 注意:要在有多个进程运行实例时指定进程计数器,请使用进程ID使用以下语法:“\Process(<name>_<pid>)\counter”
-pl当性能计数器低于指定值时触发。
-r使用克隆转储。 并发限制是可选的(默认 1,最大 5)。
CAUTION:高并发值可能会影响系统性能。
- Windows 7:使用反射。 OS 不支持-e。
- Windows 8.0:使用反射。 OS 不支持-e。
- Windows 8.1+:使用PSS. 支持所有触发器类型。
-s写入转储前的连续秒数(默认为 10)。
-t当进程终止时写一个转储。
-u对待CPU相对于单个核心的用法(与 -c 一起使用)。
作为唯一的选择,卸载 ProcDump 作为事后调试器。
-w如果指定的进程未运行,请等待它启动。
-wer将(最大的)转储排队到 Windows 错误报告。
-X使用可选参数启动指定图像。 如果它是一个商店应用程序或包,ProcDump 将在下次激活时启动(仅)。
-64默认情况下,当在 64 位 Windows 上运行时,ProcDump 将捕获 32 位进程的 32 位转储。 此选项覆盖以创建 64 位转储。 仅用于 WOW64 子系统调试。
-?使用 -? -e 查看示例命令行。


ProcDump 选项标志:


Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000CpfyCAC&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language