Автоматическая сборка информации о фатальной ошибке

Автор Тема: Автоматическая сборка информации о фатальной ошибке  (Прочитано 11449 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Andrey-AdamenkoАвтор темы

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
  • CAD Manager
Здравствуйте!

Я занимаюсь поддержкой пользователей AutoCAD в нашей компании и у меня есть проблема.

Пользователи жалуются на внезапные появления фатальных ошибок AutoCAD.

Иногда это происходит при работе с таблицами или при переходе из листа в лист. Но бывает что ошибка возникает независимо от действий пользователя по прошествии некоторого количества времени.

Так как мы используем 2014 версию AutoCAD без подписки, получить официальную поддержку по этой проблеме невозможно.

Идея состоит в том чтобы собрать статистику по возникновению таких ошибок, возможно так же собрать дамп (dmpuserinfo.xml), и проанализировать их.

Вопрос: как отловить возникновение фатальной ошибки AutoCAD?
Возможно ли написать какой-то плагин на C# или C++ для этого?
Можно ли использовать средства COM для этого?
Какие средства Windows можно использовать?

Для отлова внезапного завершения работы AutoCAD думаю сделать плагин который будет "пинговать" какой-нибудь ресурс, и если обмен сообщениями внезапно прекратился, можно сделать вывод что работа AutoCAD прервана фатальной ошибкой.

Что ещё можно предпринять?
Может я не туда копаю?

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Идея состоит в том чтобы собрать статистику по возникновению таких ошибок, возможно так же собрать дамп (dmpuserinfo.xml), и проанализировать их.

Windows ведет логи ошибок, информациив них недостаточно? Информация хоть раз помогла установить ошибку в AutoCAD?

Пользователи жалуются на внезапные появления фатальных ошибок AutoCAD.
Что ещё можно предпринять?
Может я не туда копаю?

Основная причина вылетов AutoCAD это пользователи и чертежи. 70%
Использование дополнительных приложений и их объектов 20%

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

При анализе таких чертежей обнаруживается, что пользователь кроме кнопки открыть ничего не умеет.
А должны уметь:
_recovery, _audit, explodeproxy, removeproxy, _flatten, _overkill, _purge .....
управлять ссылками, масштабами аннотаций
управлять видами, пользоваться быстрым выбором
и т.д. и т.д.
Т.е. уметь анализировать свои чертежи, и исправлять ошибки в них.
50% пользователей не умеют это делать, не понимают вообще о чем речь  и ежедневно засоряют архив чертежей.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Павел55

  • ADN OPEN
  • ***
  • Сообщений: 106
  • Карма: 3
Для отлова внезапного завершения работы AutoCAD думаю сделать плагин который будет "пинговать" какой-нибудь ресурс, и если обмен сообщениями внезапно прекратился, можно сделать вывод что работа AutoCAD прервана фатальной ошибкой.

Что ещё можно предпринять?
Может я не туда копаю?
Можно попробовать написать плагин, который будет писать данные в лог файл каждые 5-10 сек. Отслеживать все пользовательские команды, время вызова, количество proxy графики и т.д. и каждый день этот лог очищать - а перед этим анализировать на предмет аварийного завершения. Но это конечно гадание на кофейной гуще.

Оффлайн Andrey-AdamenkoАвтор темы

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
  • CAD Manager
Спасибо за ответы!

Windows ведет логи ошибок, информациив них недостаточно? Информация хоть раз помогла установить ошибку в AutoCAD?
К сожалению, совершенно не достаточно. Обычно они не содержат информации которую я могу использовать для выявления причины ошибки. Лишь однажды проблема возникала из-за поврежденных файлов .net framework, и в этот раз информацию удалось получить из лога.

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


Andrey-Adamenko,
https://docs.microsoft.com/ru-ru/windows/win32/api/errhandlingapi/nf-errhandlingapi-setunhandledexceptionfilter?redirectedfrom=MSDN
Спасибо за подсказку, буду капать в эту сторону.

Павел55, буду эксперементировать!)

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Я говорю о тех случаях когда после анализа чертежа, причину "вылета" определить не удается...
Если что, хорошо помогает починка/очистка чертежа и копирование в новый чертеж.

Я не к тому, что стоит, или не стоит собирать статистику.
Нужно как-то докопаться до причины и исправить, чтобы можно было дальше работать с чертежом.
Наводящие вопросы:
В только что созданных такая ошибка повторяется?
Если таблицы перенести в новый чертеж через время появиться ошибка?
А если таблицы разбить?

Разбивая/копируя объекты частенько удается найти проблемные объекты, проанализировать исправить.
Не уверен, что анализ логов приблизит к решению проблемы "внезапные появления фатальных ошибок AutoCAD".

Вот пример, вылетает AutoCAD 2010 при выделении стен и дверей СПДС, когда активирован ObjectEnabler.
Что бы дал лог? В лучшем случае указал на  ObjectEnabler.

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
мне обычно хватало дампа

Оффлайн Andrey-AdamenkoАвтор темы

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
  • CAD Manager
Привалов Дмитрий, есть подозрение что проблема может быть связана с конфигурацией системы. Возможно так же, влияние оказывает антивирус. Такой анализ нужен чтобы посмотреть на каких компьютерах фатальные ошибки возникают чаще, а на каких может быть и вовсе не возникают, есть ли разница в дампах, после этого рассмотреть особенности системы и может быть конфигурации железа. Попытаться исключить влияние антивируса.

Опрашивать пользователей смысла нет, их мнение очень субъективно.

В только что созданных такая ошибка повторяется?
Когда Автокад "вылетает" периодически, то есть через определенный промежуток времени, неважно какой открыт чертеж, он вылетает даже если не открыт ни один чертеж.

Конечно, иногда приходится "тыкать носом" пользователя в то что в чертеже содержатся ошибки, но не всегда дело в этом.


trir,
мне обычно хватало дампа
Зачастую в дампе содержится подобная строка:
<AppCDATA><![CDATA[Command: _.LAYOUT_CONTROL;������ ������;(lisp-���������);������ ������]]></AppCDATA>
Что это значит? Можно ли это как то использовать?

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
есть подозрение что проблема может быть связана с конфигурацией системы.
Когда Автокад "вылетает" периодически, то есть через определенный промежуток времени, неважно какой открыт чертеж, он вылетает даже если не открыт ни один чертеж.

Если проблема действительно системная и частая, я бы пошел таким путем.

1. Определись у всех ли пользователей такое....это важно.
2. Есть ли продвинутые пользователи у которых наблюдается эта проблема? С ними быстрее и проще выявить проблему.
3. Важно перезагрузить компьютер, т.к. некоторые не перезагружают неделями.
4. Создаешь пустой профиль автокада и предлагаешь поработать с теми же чертежами. Это важно. Так отсекаешь все надстройки AutoCAD. Есть нюансы, что часть надстроек через реестр подгружается.
5. Собственно, если ошибка была и пропала ищешь в надстройках.

6. Если ошибка не пропала стоит продолжить работать с пустыми чертежами, т.е. в отсутствии надстроек и влияния чертежей.
7. Если ошибка пропала значит искать в чертежах, если повторяется, значит копаться в системе.

Надстройки важно отсечь, у нас например периодически всплывала такая проблема:
На компьютерах, где была установлена LiraSAPR периодически переставало работать сохранение чертежей.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Что это значит? Можно ли это как то использовать?
В данном случае происходила работа с листами чертежа - возможно переключение.
Когда Автокад "вылетает" периодически, то есть через определенный промежуток времени, неважно какой открыт чертеж, он вылетает даже если не открыт ни один чертеж.
Это возможно только если проблема с железом или стоит какое-то сторонне приложение в AutoCAD (SPDS Extension я тоже считаю сторонним приложением).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
4. Создаешь пустой профиль автокада и предлагаешь поработать с теми же чертежами. Это важно. Так отсекаешь все надстройки AutoCAD. Есть нюансы, что часть надстроек через реестр подгружается.
Практически ничего не отсекаешь. Кроме реестра еще и автозагрузчик из Bundle.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Практически ничего не отсекаешь.
??
В профиле находятся приложения добавленые через _appload.
В профиль подгружены меню, которые могут подгружать другие приложения.
Плюс прописаны папки, в которых могут лежать acad.lsp и acaddoс.lsp

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
В профиле находятся приложения добавленые через _appload.
Если ты имеешь в виду автозагрузка через портфельчик, то да. Но я даже не рассматриваю этот способ, как самый ненадежный.
В профиль подгружены меню, которые могут подгружать другие приложения.
Теоретически да. Практически, начиная с AutoCAD 2012 нормальные (!!!) приложения используют или BUNDLE или запись автозагрузки в реестр (в ту ветку, которая к профилю не имеет никакого отношения). А все эти acad.lsp/acaddoc.lsp и т.д. - это осталось только для тех, кто пишет на lisp (который в режиме простоя и без открытого документа не может привести к Fatal Error) или использует древние версии AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
...или использует древние версии AutoCAD.
это про нас :-(

как самый ненадежный.
А в чем проявляется ненадежность?
...Пару случаев было, когда без видимых причин приложение(GeoniCS) переставало грузиться, пока не вызовешь _appload и тут же не закроешь.

начиная с AutoCAD 2012 нормальные (!!!) приложения используют или BUNDLE или запись автозагрузки в реестр (в ту ветку, которая к профилю не имеет никакого отношения).
Пользователям не нужны нормальные приложения, которые используют BUNDLE. Им нужны приложения которые решают их задачи.
Коммерческие программы иногда используют mnl файлы. Пользователи сами могут скачивать и устанавливают различные бесплатные приложения. Многие из приложений основаны на достаточно старых технологиях.

А все эти acad.lsp/acaddoc.lsp и т.д. - это осталось только для тех, кто пишет на lisp (который в режиме простоя и без открытого документа не может привести к Fatal Error) или использует древние версии AutoCAD.
Я сознательно использую acad.lsp/acaddoc.lsp как часть системы автоматической настройки и обновления.

Систему приходится менять и через acad.lsp/acaddoc.lsp быстрее и проще администрировать.
Я делал не только чтобы я смог разобраться и поменять.
На рабочем месте пользователя, для тестирования, проще и быстрее в файлике поменять чем в реестр лезть.
Чтобы проверить как работает AutoCAD без довесок, как правило достаточно создать новый профиль и перезапустить AutoCAD.
Остаются как раз Ваши приложения ExplodeProxy, SelSim и т.д. но с ними проблем нет.

Если и буду менять, то напишу свой загрузчик, возможно даже на lisp.

acad.lsp/acaddoc.lsp, *.mnl, *.CUIX в свою очередь могут грузить что угодно, lisp, arx, vba, которые могут приводит к любым последствиям.