Ловля справки StackOverflowException с WinDbg и ADPlus

Два поля и два события ...

Вы можете написать один «обработчик» для этого. Просто используйте метод .on() , который позволяет связывать много событий (здесь keyup и change). Затем, в сравнении, проверьте оба значения. Если один или другой пуст, отключите кнопку.

$(function() {
  $('#searchInput, #selectBox').on('keyup change',function() {
    if ($('#searchInput').val() == '' || $('#selectBox').val() == '') {
      $('.enableOnInput').prop('disabled', true);
    } else {
      $('.enableOnInput').prop('disabled', false);
    }
  });
})



  

Это можно даже записать короче, поместив условие непосредственно во второй истинный / ложный аргумент .prop() :

$(function() {
  $('#searchInput, #selectBox').on('keyup change',function() {
    $('.enableOnInput').prop('disabled', ($('#searchInput').val() == '' || $('#selectBox').val() == ''));
  });
})



  

16
задан David Boike 31 August 2009 в 20:01
поделиться

2 ответа

На случай, если это может помочь кому-то другому, ниже приведен файл конфигурации ADPlus , который я придумал. Глядя на это сейчас, я не уверен, что! Runaway имеет какой-либо эффект. Прикрепляется, когда выполняется приложение ASP.NET, которое генерирует исключение StackOverflowException, это создает файлы .dmp «1-й шанс StackOverflow full» и «1-й шанс полного завершения процесса» в указанном OutputDir. Откройте первый файл с помощью Windbg и запустите «.loadby sos mscorwks», за которым следует «! Clrstack», чтобы узнать, что могло вызвать переполнение стека.

<ADPlus>
<Settings>
    <RunMode>CRASH</RunMode>
    <OutputDir>C:\Dumps</OutputDir>
    <ProcessName>w3wp.exe</ProcessName> 
</Settings>
<Exceptions>
    <Option>FullDumpOnFirstChance</Option>
    <Option>MiniDumpOnSecondChance</Option>
    <Option>NoDumpOnFirstChance</Option>
    <Option>NoDumpOnSecondChance</Option>
    <Config>
        <Code>AllExceptions</Code>
        <Actions1>Void</Actions1>
        <Actions2>Void</Actions2>
        <ReturnAction1>GN</ReturnAction1>
        <ReturnAction2>GN</ReturnAction2>
    </Config>       
    <Config>
        <!--
        av = AccessViolation
        ch = InvalidHandle
        ii = IllegalInstruction
        dz =  IntegerDivide
        c000008e = FloatingDivide
        iov = IntegerOverflow
        lsq = InvalidLockSequence
        sov = StackOverflowException
        eh = CPlusPlusEH
        * = UnknownException
        clr = NET_CLR
        bpe = CONTRL_C_OR_Debug_Break
        ld = DLL_Load
        ud = DLL_UnLoad
        epr = Process_Shut_Down
        sbo = Stack_buffer_overflow
        -->
        <Code>sov;sbo</Code>
        <Actions1>Log;Time;Stack;FullDump;EventLog</Actions1>
        <CustomActions1>!runaway</CustomActions1>
        <Actions2>Log;Time;Stack;FullDump;EventLog</Actions2>
        <CustomActions2>!runaway</CustomActions2>
        <!--
        G = go
        GN = go unhandled exception
        GH = go handled exception
        Q = quit
        QD = quit and detach
        -->
        <ReturnAction1>GN</ReturnAction1>
        <ReturnAction2>GN</ReturnAction2>
    </Config>
    <Config>
        <Code>clr</Code>
        <Actions1>Void</Actions1>
        <Actions2>Log;Time;Stack;FullDump;EventLog</Actions2>
        <ReturnAction1>GN</ReturnAction1>
        <ReturnAction2>GN</ReturnAction2>
    </Config>
    <Config>
        <Code>epr</Code>
        <Actions1>Log;Time;Stack;FullDump;EventLog</Actions1>
        <Actions2>Void</Actions2>
        <ReturnAction1>GN</ReturnAction1>
        <ReturnAction2>GN</ReturnAction2>
    </Config>
</Exceptions>
</ADPlus>
12
ответ дан 30 November 2019 в 22:50
поделиться
<ADPlus>
   <!-- Add log entry, log faulting thread stack and dump full on first chance StackOverflow -->
<Exceptions>
     <Config>
        <!-- This is for the stack buffer overflow exception -->
        <!-- Use sov for stack overflow exception -->
       <Code> sbo </Code>
       <Actions1> Log;Stack;FullDump </Actions1>
       <!-- Depending on what you intend - either stop the debugger (Q or QQ) or continue unhandled (GN) -->
       <ReturnAction1> GN </ReturnAction1>
     < Config>
  </Exceptions>
</ADPlus>

Сохраните это в stackoverflow.cfg
Затем вы можете перейти:

adplus -c stackoverflow.cfg

Редактировать: оба sov и sbo являются исключениями переполнения стека. Я думаю, что нужно экспериментировать с обоими, так как мне не совсем понятно, в чем разница между ними. (может sbo обозначать неверный вызов alloca ()?)

3
ответ дан 30 November 2019 в 22:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: