Как я могу получить "идентификатор корзины", который использует winqual, если у меня есть файл минидампа или структура исключений? (Windows C++)

Есть несколько связанных вопросов по SO - но не нашли ответа -

Я хотел бы сгенерировать "подпись"/ идентификатор корзины, чтобы сообщить о мини-дампе / сбое обратно в нашу систему отслеживания ошибок. Поскольку MS уже делает это с "идентификаторами сегментов", я решил, что могу просто повторно использовать их генерацию сегментов / подписей.

Могу ли я получить этот идентификатор из фильтра верхнего уровня или из объекта _EXCEPTION_POINTERS, который у меня есть внутри фильтра, или из структуры _MINIDUMP_EXCEPTION_INFORMATION, или из самого минидампа?

Это приложение на C++.

2 ответа

Есть статья, рассказывающая о том, как Microsoft, ребята, изначально создает идентификатор корзины (и да, конечно, эта статья от Microsoft). Вам на самом деле не нужно реверсировать разработку точно такого же алгоритма группирования, который они используют. Это идея, которая работает.

Этот документ можно найти по адресу: http://www.sigops.org/sosp/sosp09/papers/glerum-sosp09.pdf Они также делают слайд, поскольку это документ SIGOPS: http://www.sigops.org/sosp/sosp09/slides/glerum-slides-sosp09.pdf

Не уверен, какой идентификатор корзины вам нужен. Числовой идентификатор назначается сервером, и вы можете найти его после отправки отчета, просмотрев журнал событий. Найдите код события 1001 в журнале событий приложения.

Чтобы найти идентификатор сегмента в строковом формате, используйте windbg или cdb и используйте команду! Analyse.

Обратите внимание, что для фактического формирования группы вы, вероятно, захотите взглянуть на WATSON_STAGEONE_URL, а не на BUCKET_ID.

Другие вопросы по тегам