【问题标题】:How to use ADPLUS to _ONLY_ get MiniDumpOnSecond如何使用 ADPLUS _ONLY_ 获取 MiniDumpOnSecond
【发布时间】:2011-07-07 22:55:30
【问题描述】:

对于生产 Win2003 网络服务器,我希望能够在 w3wp.exe 进程崩溃时始终记录小型转储...我已阅读 ADPLUS 的文档,并将其 xcopy 部署到生产网络服务器,并已从命令行启动 adplus.exe,如下所示:

adplus.exe -crash -MiniOnSecond -NoDumpOnFirst -pmn w3wp.exe -o C:\Dumps

这确实记录了“MiniOnSecond”,但它也首先记录了完整转储——我不想要那些(它们是大文件,没有我需要的东西)。有没有人找到让“-NoDumpOnFirst”标志真正起作用的方法?此外,每次重新启动盒子时,我都希望这种行为 - 如果不运行批处理文件,如何在重新启动时完成?我已经阅读了有关 Windows 错误报告 (WER) 的信息,并且在 Win2008R2 服务器上实现此行为是微不足道的——如何在 2003 服务器上使其工作?

我已经阅读了 ADPLUS 和 WER 的文档——但我需要有关实际命令行和/或注册表设置的帮助,以便在 Win 2003 服务器上轻松捕获小型转储。感谢您的帮助!

【问题讨论】:

    标签: iis dump minidump adplus


    【解决方案1】:

    我使用了可以附加-c 标志的配置文件...因为我最感兴趣的是在我的自定义 COM 组件中捕获错误,这些设置创建没有完整转储的小型转储,并忽略 CLR 崩溃,并且不要在 IISReset 上完全转储。

    要让它一直运行,请创建一个计划任务。从管理员提示:

    schtasks /create /tn "Crash Dump Monitor w3wp" /tr "\"C:\Program Files\Debugging Tools for Windows (x86)\adplus.exe\" -c \"C:\Program Files\Debugging Tools for Windows (x86)\adplus_w3wp.xml\"" /sc ONSTART
    

    将此文件另存为 C:\Program Files\Debugging Tools for Windows (x86)\adplus_w3wp.xml

    <ADPlus Version="2">
    <!-- 
    PURPOSE:      Capture mini crash dumps in IIS 6.0. Do not capture full dumps
    INSTRUCTIONS: Save this file in the same location as adplus.exe (usually C:\Program Files\Debugging Tools for Windows (x86))
    COMMAND LINE: 
              "C:\Program Files\Debugging Tools for Windows (x86)\adplus.exe" -iis -c "C:\Program Files\Debugging Tools for Windows (x86)\adplus_w3wp.xml"
    -->
      <Settings>
        <RunMode>Crash</RunMode>
        <OutputDir>C:\Dumps</OutputDir>
        <ProcessToMonitor>w3wp.exe</ProcessToMonitor>
      </Settings>
      <Exceptions>
        <All>
          <Actions1>VOID</Actions1>
          <Actions2>VOID</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </All>
        <Exception Code="av"><!-- Access Violoation -->
          <Actions1>Log;Time;Stack;MiniDump;EventLog</Actions1>
          <ReturnAction1>GN</ReturnAction1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="ch"><!-- InvalidHandle -->
          <Actions1>Log;Time;Stack;MiniDump;EventLog</Actions1>
          <ReturnAction1>GN</ReturnAction1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="ii"><!-- Illegal Instruction -->
          <Actions1>Log;Time;Stack;MiniDump;EventLog</Actions1>
          <ReturnAction1>GN</ReturnAction1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="dz"><!-- IntegerDivide -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="c000008e"><!-- FloatingDivide -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="iov"><!-- IntegerOverflow -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="lsq"><!-- InvalidLockSequence -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="sov"><!-- StackOverflow -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="aph"><!-- Application_hang -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="dm"><!-- Data_misaligned -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="gp"><!-- Guard_page_violation -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="ip"><!-- In_page_IO_error -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="isc"><!-- Invalid_system_call -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="sbo"><!-- StackOverflow -->
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
        <Exception Code="epr"><!-- Process_Shut_Down -->
          <Actions1>Log;Time;</Actions1>
          <ReturnAction1>Q</ReturnAction1>
        </Exception>
        <!--
        <Exception Code="clr">
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
    
        <Exception Code="*">
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>
    
        <Exception Code="clr">
          <Actions1>VOID</Actions1>
          <Actions2>Log;Time;Stack;MiniDump;EventLog</Actions2>
          <ReturnAction1>GN</ReturnAction1>
          <ReturnAction2>GN</ReturnAction2>
        </Exception>-->
    
      </Exceptions>
    
    </ADPlus>
    

    有人可以改进吗?我是否错过了任何重要的崩溃异常?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2013-10-15
      相关资源
      最近更新 更多