zoukankan      html  css  js  c++  java
  • 抓取Dump

    Dump文件主要是将内存中的内容储存起来的物理文件,根据储存的不同内存段,可以将dump文件分为内核模式dump(Kernel-mode dump)和用户模式dump(User-mode dump),我们主要用到是用户模式dump。

    用户模式dump又可以分为完全dump(Full User-Mode Dump)和迷你dump(Minidump),minidump只包含目标进程相关的内存,full dump包含了所有用户空间的内存,同时还包括了虚拟内存,所以minidump远远小于full dump,

    我们常用的是迷你dump。

    一、任务管理器

     

    在任务管理器中,切换到"进程"选项卡,右键点击你想要创建dump文件的进程,然后选择"创建转储文件"即可

    如果想在程序崩溃的那一刻抓取dump文件。可以通过adplus命令来抓

    ADPlus 具有两种操作模式:

    “Hang”模式用于解决进程挂起、100% CPU 使用率以及不涉及崩溃的其他问题。当您在挂起模式下使用 ADPlus 时,在运行脚本之前必须等待,直到进程停止响应(与崩溃模式不同,挂起模式不是持久性的)。
    “Crash”模式用于解决 Dr. Watson 错误导致的崩溃问题,或者用于解决导致程序或服务意外退出的任何其他类型的错误。当您在崩溃模式下使用 ADPlus 时,必须在发生崩溃前启动 ADPlus。可以通过“-notify”开关对 ADPlus 进行配置,以便通知管理员或计算机发生了崩溃。

    二、ADPLUS

    使用ADPlus的命令举例

    -crash:表示我捕捉的是一个Crash dump。
    -p:指定要捕捉的进程ID。 -IIS表示我们捕捉IIS的所有进程。
    -quiet:不弹出提示窗口
    -fullonfirst:表示我希望在first chance时捕捉完整的dump信息,也就是进程的所有完整信息。
    -o :后面跟着dump文件的存放路径
    -c : 指定配置文件

    为Hang住的情况抓Dump:

    adplus -hang -pn w3wp.exe -o C:dumps 为所有的w3wp.exe进程创建dump到C:dumps

    adplus -hang -p 1244 为进程ID为1244的进程创建内存转储文件.

    adplus -hang –IIS 为所有跟IIS相关的进程(比如w3wp.exe, inetinfo.exe, aspnet_wp.exe 和dllhost.exe)创建内存转储文件.

    为Crash的情况抓Dump:

    adplus -crash -pn -fullonfirst w3wp.exe 在崩溃的时候为所有的w3wp.exe进程创建内存转储文件

    adplus -crash -p 8588 -fullonfirst -o d:dumps 在进程ID为8588 的进程崩溃的时候为它创建内存转储文件

    adplus -crash –IIS 为所有跟IIS相关的进程(比如w3wp.exe, inetinfo.exe, aspnet_wp.exe 和dllhost.exe)创建崩溃时的内存转储文件.

    三、Windbg

    附加(attach)已经启动的程序,选择好进程, 是windbg输入命令 .dump /ma d:w3wp.dmp

    1、查看进程ID

     

    2、attach进程

    3、生成dump文件

     

    选项(1): /m

    命令行示例:.dump /m d:w3wp.dmp

    注解: 缺省选项,生成标准的minidump, 转储文件通常较小,便于在网络上通过邮件或其他方式传输。 这种文件的信息量较少,只包含系统信息、加载的模块(DLL)信息、 进程信息和线程信息。

    选项(2): /ma

    命令行示例:.dump /ma d:w3wp.dmp

    注解: 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。

  • 相关阅读:
    【网易官方】极客战记(codecombat)攻略-森林-墓地阴魂tomb-ghost
    【网易官方】极客战记(codecombat)攻略-森林-盗墓者tomb-raider
    no plugin found for prefix 'tomcat 7' in the current project
    java.lang.IllegalStateException: Ambiguous mapping found
    Result Maps collection already contains value for
    Delete 和 Put 请求失效, Spring 框架
    NoClassDefFound Error: com/fasterxml/jackson/annotation/JsonAutoDetect
    mybatis 常用标签
    sql join
    objectMapper、JsonNode、JsonObject常用方法
  • 原文地址:https://www.cnblogs.com/50614090/p/9322001.html
Copyright © 2011-2022 走看看