首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ADPLUS获取MiniDumpOnSecond

如何使用ADPLUS获取MiniDumpOnSecond
EN

Stack Overflow用户
提问于 2011-07-08 06:55:31
回答 1查看 1K关注 0票数 0

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

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

这确实记录了"MiniOnSecond“,但它也记录了第一个完整的转储--我不想要这些(它们是大文件,没有我需要的文件)。有没有人找到了让"-NoDumpOnFirst“标志真正起作用的方法?此外,我希望每次计算机重新启动时都会出现这种行为--如果不在重新启动时运行批处理文件,如何才能做到这一点?我读过有关Windows Error Reporting (WER)的文章,在Win2008R2服务器上实现此行为很简单--如何在2003服务器上实现此行为?

我已经阅读了ADPLUS和WER的文档--但我需要有关实际命令行和/或注册表设置的帮助,以便在Win 2003 Server上简单地捕获小型转储。谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-12 00:51:04

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

要使其始终运行,请创建一个计划任务。在管理员提示符下:

代码语言:javascript
复制
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 for Windows (x86)\adplus_w3wp.xml

代码语言:javascript
复制
<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>

有人能改进这一点吗?我是否遗漏了任何重要的崩溃异常?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6618105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档