Перейти к содержанию

Автоматизация сбора отчетов об ошибках (CrashMonitor)


Nobi

Рекомендуемые сообщения

Опубликовано

прошу сделать мне тестовую,

Я тебе 3 варианта TestCall дал, обпроверяйся до посинения, первым параметром принимает имя экспортируемой функции

Опубликовано

Либо ты в sfall фрапсишь

на данный момент в sfall ничего ненадо фрапсить, ее только надо преобразовать в RGB и сохранить в файл или передать в выделенную тобой память.

[pluspost=44 сек.]

Я тебе 3 варианта TestCall дал

да это срань, кторая не реагирует на краш, нужна нормальная с вызовом функции при краше.

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

Опубликовано

тебе что тружно было сделать вызов

тебе трудно?

 

.\TestCall.exe SaveScreenA
.\TestCall.exe SaveScreenB
.\TestCall.exe PizdecExportFunc
По умолчанию без параметра вызывает SaveScreenA
TestCall2 делает вызов сразу
TestCall3 с 30 сек задержкой и без msgbox
и все это не требует shellexecute от игры

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

 

________

 

После зависания на фулскрине и добивания крашнутой игры вызовом SaveScreenA, думал что это все, гиблое дело. Возможно не все еще потеряно, раз дело в GetRenderTargetData

Опубликовано

тебе трудно?

я тебе про одно - ты мне про другое.

- зачем мне писать там имя функции, я могу сменить/изменить имя  вызываемой функции на любое в sfall вне зависимости что ты нам напридумал у себя.

[pluspost=12 сек.]

нужна версия 2.12 но с вызовом функции при краше - черт подери.

Опубликовано

но с вызовом функции при краше

Ну вот вариант не для релиза, https://www.mediafire.com/file/zdpk9qcdpey9ve8/CrashMonitor.7z/file

 

Пожалуста, не буду тебе мешать усложнять самому себе жизнь. И я хз как оно работает, я немогу ее проверить на краше изза GetRenderTargetData

______

 

бляя она не работает 100%, ща перезалью

 

________

 

Вот https://www.mediafire.com/file/othejr2at4zi7d4/CrashMonitor.7z/file

 

 

_______

 

 

Кароче скачал sFall_v4.3.3.1-Extended-Install, и на краше вызов вообще никак не отражается, но и треда я не вижу в procexp, ты тудам хотябы sleep поставил секунд на 30. Оно реально выглядит так словно нихрена не работает

Опубликовано

Кароче судя по TestCall функция на краше отрабатывает, но настолько быстро что ее в procexp не видно. Можно прям на краше запускать эту функцию и аккуратно из памяти сохранять скрин, если буфер с bitmap и палитрой не снесло.

 

________

 

Мог бы по раньше сделать этот пуш с return 0 и всебы прояснилось еще на предыдущей странице

 

________

 

Но всеже наверное надо перепроверить както, выполнить там запись в текстовый файл при вызове, а то может она и не отрабатывает, а просто завершается

Опубликовано

потомучто я отключил)

Да я видел, туда sleep или filewriteline чтоб наверняка убедиться что оно работает

Опубликовано

Можно прям на краше запускать эту функцию и аккуратно из памяти сохранять скрин, если буфер с bitmap и палитрой не снесло

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

Опубликовано

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

filewriteline для проверки, или вообще хоть чтото не затрагивающее память, но при этом дающее видимый результат, а потом уже можно и память щупать

Опубликовано
Я тут так подумал, а что если дело не в GetRenderTargetData а в значении return, эта функция по сути выполняется как тред/процесс и любое возвращаемое значение отличное от 0 воспринимается как exit code с ошибкой. Это тоже стоит проверить
Опубликовано

эта функция по сути выполняется как тред/процесс

в мануалах по программированию написано, что возращаемые значения в таких случаях просто игнорируются (возвращает некуда).

[pluspost=36 сек.]

вроде все ок, никаких крашей в фулскрине. файл создался.

завтра сделаю функцию по созданию скрина. тогда точно узнаем.

 

жалко что это вызывается как поток.

я так понял ты потом будешь ожидать в цикле/слипе появление файла?

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

Опубликовано

хотя как ты узнаешь что я "все" залил, возращать же я тебе ничего немогу по окончанию работы

Вот она проблема многопоточности

 

 

я так понял ты потом будешь ожидать в цикле/слипе появление файла?

Нет, дождусь выполнения dllcall и дальше выполняется все это безобразие. А файл наверное в самом конце уже перемещать, всеравно пока оно там сейвы скопирует, пока dxdiag сгенерирует, скрин уже раз 10 запишется

 

а передать аргумент на указатель памяти сможешь

Вот это лучше на крайний случай оставить как ты ранее говорил, выделять память в чужом процессе это несколько не безопасно. Указать то могу на память только процесса игры(может както и по другому можно но я хз)

 

_______

 

Бляин, придется немного переделывать. Игру закрывать только в самом конце.

Опубликовано

Вот версия более правильная для тестов скриншота https://www.mediafire.com/file/mwl37wp9ylked5u/CrashMonitor113test.7z/file

 

Она игру только в самом конце будет пытаться закрыть, а не как сейчас после дампа и вызова скрина

Опубликовано

Ну все ок, скрин создается без всяких проблем. https://yadi.sk/d/Dq_rjWu4DN806Q

Можешь даже сделать так, чтобы функция вызывалась всегда при краше, вне зависимости нажали ли ДА при запросе сформировать отчет. Это всегда будет создавать/перезаписывать скрин в корне игры с именем "CrashScreen.bmp".

Опубликовано

Можешь даже сделать так, чтобы функция вызывалась всегда при краше, вне зависимости нажали ли ДА

Ну могу конечно и так сделать, просто код скриншотилки и дампа будет объединён, так как им обоим нужны debug привилегии и openprocess. Через день гляну что там и как, и через пару дней релиз 2.13 выпущу. И да кстати, debug привилегии требуют наличия пользователя в группе администраторов

 

_______________

 

При запросе на отправку отчёта, при нажатии Нет будут удаляться из каталога _crash.txt и _report.txt указанного архива и в дальнейшем не будет напоминать о том что надо отправить этот репорт

Опубликовано

на кнопочку done можно вывести уведомление "Введите описание!"

а то сейчас она как поломанная если введено <5 символов , думаю даже ограничение это можно убрать, и можно с 1 символом отправлять. все равно если не хотят писать там в пишут бебеб...

Опубликовано

При запросе на отправку отчёта

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

Опубликовано

По быстрому никак, пусть 2.12 берёт если планирует обновлять сборку, ну или ждите ближе к понедельнику или вторник

 

_______

 

 

Хотя хз, может в воскресенье доделаю, если вы мне тут еще "багов" которые надо пофиксить не накидаете

Опубликовано

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

________



а то сейчас она как поломанная если введено <5 символов , думаю даже ограничение это можно убрать, и можно с 1 символом отправлять. все равно если не хотят писать там в пишут бебеб...


Кароче вернул как было, крайне раздражающая херня, а нам скришотов думаю хватит если что.

_________

Вроде все сделал, осталось перепроверить несколько раз и выложу либо в субботу либо в воскресение

 

__________

 

релизкандидат https://www.mediafire.com/file/3w4j9n1jt8uum6v/CrashMonitorRC213.7z/file

Опубликовано
Ну все, релиз v2.14. , @Foxx, проверьте на всякий случай. Настоятельно не рекомендую заниматься распаковкой и перепаковкой внутри каталога крашрепорта, а так теперь можете там хранить краши в архивах и чтобы вам не напоминало об отправке можете удалить все *.txt в каталоге, этиже *.txt будут удаляться при нажатии Нет в запросе на отправку.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...