Udostępnij za pośrednictwem


И кнопочку «Повтор» не забудьте!

???? ?????, ? ??????? ?? ?????? ?????? ????? ????????????, ???????? ????? ????????????? ????????????. ??? ???????????? ??????????? 100% (a ? ?????? - ??? ????? 100%) ????????????? ???????????. ????? ??????, ????? ????????? ??????? ?????? ????? ? ???????????? ????????, ??? ??????????? ??????? ???????? ????????. ??????????????? ????????????? ????? ??? ??????????? ???????? ?????????, ???????????? ???? ? ????????? ?????? ?????. ??? ??????, ???????? ? ?????????? ?????? ?????? ??? ???????? ???????.

??? ???? ??????? ??? ????????. ??-??????, ??? ?????? ? ???? ????????????? ????? ???????, ?.?. ???????????????? ?????????, ??? ????? ?????????? ?????????. ????????, ???? ???? ?????????? ??????? ??????????, ?? ??? ?????????? ??????? ?? ????, ??? ????????? ? ???? ?? ?????? ??????? ?????. ???, ??????, ???? ???? ????? ???????? ?? ??????????? ???? ??? ????? COM ??????????. ?????? ??????, ? ????? ??????? ???? ????????? ???? ???? ??????. ??? ????? ???????? ?????????????? ?????? ??? ???-?????? ???. ?? ???????? ?? ????????????????? ???????? ???? ???? ??????????, ? ??? ???????? ????????????? ?????? – ????? ????.

??-??????, ???? ???? ?? ???? ?? ?????? ??????? ??????? «????????????», ???????? ?????? ???????? – ?????????? ???? ????????? ????. ?????? ????? ????? ???? ??????? ?????????? ?????. ? ??????. ?? ???????? ?? ???? ???????? ????? ?? ????? ?????????? ?????? ??? ???? ?????? ??? “Hello world”. ?????? ????????? ???? ?????? ?????????? ??????? ?????????? ??????? ?????? ????????????. ?????, ??????????? ??? ??? ??????? ????? ?????????? ??????? ??????????, ????? ????? ????????? ????? ??????? ???????????? ????, ?? ? ??????? ?????? ??????? ???????? ???????. ?? ?????, ? ??? ???? ?????, ???????????? ??????? ????????? ????????? ??? ??????????????? ???????.

??? ???????????? ???????? ???????????? ??? ?????????? ??????? (fuzzers). ?????? ?????????? ????? ?????? ??? ???????, ? ??????? ????????? ??????? ???????? ??????. ??? ????? ???? ??? ????????? ?????????????????? ????, ??? ? ?????? ??????? ?????? ?? ????? ??????? ??????. ? ???????, ??? XML ??????? ????? ????????? ??????? ?? ????? ????????? ????, ????? ????????? ???????? ? ?????????? ?????????, ????? ????? ? ????????????? ????????. ????????? ?????????? ?????? ?????? ????????? ???????????? ????? ??????, ???????? ?? ????. ???????????? ????????? ??????????? ? ?????????? ?????? ?? ?????????? ????????? ?????? ????? ????????????? ????????????????????? ?????????, ???? ?????????????? ?????????? ??????????? ??????????? ????????? ???????. ???? ?? ??????? ????? ???????????? ?? ?????? ??? ???????? ????????, ?? ? ??? ???????????? ????????? ???????, ??????????? ? ?.?. ?????? ? ???? ?????? ?????? ???????? ?????? ? ?????? ?? ?????, ?????? ????? ?????????? ?????? ? ?????????? ?????????????????? ?????? ??????? ?????? ??? ??????????.

???? ????????????? ???????? ????????? ?????????? ??????????? ??????, ? ????? ?????? ????????????? ??????????? ??????? ???????? ?? ????? ??????. ??????????? ???????????? ?????? ??????????????. ????? ?? ??? ????? ???? ? ??????? ????????, ???? ? ?????????????? ??????, ??????????????? ???? ???????? ????? ??????????? ???????. ?????? ? ?? ???????????? ????? ????????, ?? ??????????? ?? ???. ????? ????????? ???? ???? ?????? ????? ?????? ??????????? ???????? ? ?????????? ???????????. ? ?????? ???? ?? ????? ??????? ????? ????? ???????????? ?????????????????? ???????. ???? ????? ??????? ?????? ????? ???????? ??????????? ?????????? ???? ??????????? ???????? ??????????????? ? ????. ??? ????? ??????????? ?????? ????????????? ???????? ??? ?? ?? ?????, ??????????????? ? ?????????. ??? ????? ????????? ???????? ??? ???:

 void
replayTest(
    const Log& log
    )
{
    ...
    while (!log.empty())
    {
        ...
        int r = log.top();
        log.pop_front();
        ...
    }
    ...
}

void
doTest()
{
    Log log;
    
    try
    {
        ...
        while (1)
        {
            ...
            int r = rand();
            log.push_back(r);
            ...
        }
        ...
    }
    catch (...)
    {
        DebugBreak();
        
        replayTest(log);
        
        throw;
    }
}

????? ??????????, ????????? «catch(…)», ????????? ???????. ??? ???? ????? ??????? ??????? «replayTest», ??????? ????????????? ? ???????? ????????, ????????? ? ??????????. ???? ?????? ????? ??????? ??? ?????, ?????? ????????? ???????? ????? ? ????????? ???? ???? ? ??????? ??????????? ????????????? «replayTest» ????????? ???.

Cross-posted from blog.not-a-kernel-guy.com.

Comments

  • Anonymous
    January 01, 2003
    Нашел ошибку в посте: Хотя использование фаззеров позволяет эффективно отлавливать ошибки, в точки зрения результатов фаззеры выглядят не очень хорошо. Это нужно читать как: “Хотя использование фаззеров позволяет эффективно отлавливать ошибки, в точки зренияповторяемости результатов фаззеры выглядят не очень хорошо.” С точки зрения результатов фаззеры выглядят как раз очень даже неплохо.