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

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


Nobi

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

дааа фиговый этот AutoIt, лучше бы C# освоил он не трудный.

[pluspost=28 сек.]

Скрипт крашится

может крашится из-за того что вызывается не из того же потока/процесса ????

перекачай я проверку поставил что бы убедится что краш не из-за этого.

и добавил преждевременное создание файла (если функция вызывается правильно то создастся файл в корне игры).

[pluspost=36 сек.]

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

Ссылка на комментарий

может крашится из-за того что вызывается не из того же потока/процесса ????

Ну какбы да, только вот нам не надо из одного потока/процесса, так как игра крашится и следом монитор еще может крашнуться. Суть проблемы в том что все winapi в autoit завернуты со стандартными привилегиями/настройками, чтобы не натворить делов. Вот я их перевелосипежу под свою реализацию и тогда должно будет получиться.

 

перекачай я проверку поставил что бы убедится что краш не из-за этого.

дп также крашнулось, это DllCallAddress крашит, так как адрес явно не правильный или привелегий не хватает

Ссылка на комментарий

дп также крашнулось, это DllCallAddress крашит, так как адрес явно не правильный или привелегий не хватает

https://autoit-script.ru/threads/smysl-funkcii-dllcalladdress.8383/

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

потом там есть сссылка "на как можно" но для меня там темный лес.

Ссылка на комментарий

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

Да видел этот велосипед, но ссылку потерял на него, щас распотрошу его и гляну как реализовано там.

 

________

 

Это несколько не то, там загрузка dll из чужого процесса и куча всяких странных трюков. Я видел урезаные примеры читаков, там примерно было как в Solution 2, но winapi обертки переписаны и эти негодяи не выкладывали эти переписанные функции.

 

________

 

Кароче не парься, может потом не спеша разберусь с этим почитав форумы читаков

 

___________

 

Нашел готовые реализации велосипеда https://www.autoitscript.com/forum/topic/129925-processcallau3-udf/ но код от 2011 года и современный autoit ругается на каждую десятую строку, кароче на выходных буду сидеть и переписывать

Ссылка на комментарий

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

ни понятно. скоро будет версия с исправлениями.

Ссылка на комментарий

ни понятно

Просто v2.7 берите с Фоксом, но для разных сборок мне желательно сделать инкремент версии 2.8 для rp, 2.9 для Невады итд, это позволит мне отключить прием крашей с какой-то определенной сборки в случае чего. Например Фокс не захочет обновлять сборку в этом году, а нам краши будут идти со старой версии sfall, хотя и они имеют некую пользу.

Ссылка на комментарий

Просто v2.7 берите

А че она такая тормозная стала, окно уже 5мин висит, жду... зависла чтоли....

и скриншот кривой получается (половина его нет).

 

короче походу зависло. дропнул.

убирай нафиг эту .MDщятену она на кой-то фиг копирует все файлы.

Ссылка на комментарий

А че она такая тормозная стала, окно уже 5мин висит, жду... зависла чтоли...

Эм, на каком этапе тормозит? Если после краша то она рекурсино по всему каталогу игры копирует файлы с расширением "*.cfg;*.inf;*.ini;*.log;*.txt" полностью игнорируя каталоги ^crashreport\\|^data\\savegame\\|^data\\text\\ ты там в каталоге с игрой решил файлопомойку устроить? Сколько тысяч файлов попадают под маску "*.cfg;*.inf;*.ini;*.log;*.txt" во всем каталоге игры? md5 также игнорирует каталоги ^crashreport\\|^data\\savegame\\|^data\\text\\ но маска там *

 

окно уже 5мин висит,

 

Please wait? или какое? shellexecute я надеюсь не менял на чтото другое?

и скриншот кривой получается (половина его нет).

Эм. Скриншотилку могу отключить, отключать? Хотя она и не тормозит вроде.

 

_______

 

Немного поправил исключение каталогов, теперь каталоги с именами crashreport;savegame;text полностью будут игнорироваться в версии 2.8+

Ссылка на комментарий

Убирай md5 - это все очень долго, и к тому-же оно нафиг не надо проверять целостность файлов,

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

[pluspost=57 сек.]

Эм, на каком этапе тормозит?

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

хотя обычным бы копированием скопировалось бы быстрее.

или убирай это копирование и так делай этот не нужный для меня MD

[pluspost=36 сек.]

Сколько тысяч файлов попадают под маску "*.cfg;*.inf;*.ini;*.log;*.txt"

там любые файлы копируются. например .mve 150метров

 

перенесите эти посты в sfall

Ссылка на комментарий

это все очень долго

0.5 сек на проце 2010 года это долго? Ты превратил каталог с игрой в непонятно что, файл md5 это прекрасно отобразит, он и нужен то по сути чтобы показать что там происходит в каталоге с игрой и стоит ли вообще с этим репортом связываться.

 

.mve 150метров

ШТА? да не может этого быть, md5 высчитывает для него, но вот копировать не должно

Ссылка на комментарий

0.5 сек на проце 2010 года это долго?

Я тебе про копирование файлов, это зачем-то начинает копировать папку с Мегамодом которая весит 1.5гб (используется как подмод) + копирует папку APPEARANCE

честно какой-то бред ты сварганил с этим md5.

Ссылка на комментарий

копировать папку

да не копирует оно никакие папки

вот весь код

 

Копирование файлов
$asFileListToArray = _FileListToArrayRec($sDirGame & "\", "*.cfg;*.inf;*.ini;*.log;*.txt||crashreport;savegame;text", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_SORT, $FLTAR_RELPATH)
If (IsArray($asFileListToArray)) Then
	While Not ($asFileListToArray[0] == 0)
		If (FileCopy($sDirGame & "\" & $asFileListToArray[$asFileListToArray[0]], $sDirCrashReport & "\" & $asFileListToArray[$asFileListToArray[0]], $FC_CREATEPATH + $FC_OVERWRITE)) Then
			FileSetTime($sDirCrashReport & "\" & $asFileListToArray[$asFileListToArray[0]], FileGetTime($sDirGame & "\" & $asFileListToArray[$asFileListToArray[0]], $FT_MODIFIED, $FT_STRING))
		EndIf
		$asFileListToArray[0] -= 1
	WEnd
EndIf
$asFileListToArray = 0
Создание мд5
$hFileOpen = FileOpen($sFileMd5, $FO_ANSI + $FO_CREATEPATH + $FO_APPEND)
If Not ($hFileOpen == -1) Then
	$asFileListToArray = _FileListToArrayRec($sDirGame & "\", "*||crashreport;savegame;text", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_SORT, $FLTAR_RELPATH)
	If (IsArray($asFileListToArray)) Then
		While Not ($asFileListToArray[0] == 0)
			FileWriteLine($hFileOpen, StringLower(Hex(_Crypt_HashFile($sDirGame & "\" & $asFileListToArray[$asFileListToArray[0]], $CALG_MD5))) & " *" & $asFileListToArray[$asFileListToArray[0]])
			$asFileListToArray[0] -= 1
		WEnd
	EndIf
	$asFileListToArray = 0
	FileClose($hFileOpen)
EndIf

щас 2.8 выпущу проверь еще раз

 

_______

 

Вот пробуй https://github.com/egornovivan/CrashMonitor/releases/tag/v2.8 должно быть значительно быстрее

Ссылка на комментарий

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

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

я в этот файл и заглядывать нехочу. там все равно какие-то бредовые цифры (для меня)

[pluspost=30 сек.]

да не копирует оно никакие папки

а что я тогда удаляю за дублированные файлы на несколько гигов? из crashreport

ну ты шутник)

Ссылка на комментарий

дублированные файлы на несколько гигов? из crashreport ну ты шутник)

O_O не ну серьезно, у тебя с компом явно чтото не так, IsHungAppWindow еще в неадекватное состояние уходил до этого

 

пробуй 2.8 оно значительно быстрее должно быть

Ссылка на комментарий

зачем ?????

а почемубы и нет? это не моя идея была размазать конфиги модов по разным каталогам, у rpu часть конфигов в отдельной директории с модом. Копируются файлы которые ужимаются до нескольких килобайт, все. на остальные файлы md5 * путь пишется и все это за секунды происходит. Открыл md5, увидел 10к записей, закрыл, удалил репорт.

Ссылка на комментарий
она рекурсино по всему каталогу игры копирует файлы с расширением "*.cfg;*.inf;*.ini;*.log;*.txt"

под маску попало/скопировала 5000 файлов))

жду когда закончится подчет md уже мин 10 жду)

в md 57000 строк))))

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

архив прислать изучать будешь?)))

Ссылка на комментарий

изучать будешь?)))

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

Ссылка на комментарий

а почемубы и нет? это не моя идея была размазать конфиги модов по разным каталогам,

кофиги лежат в корне и определеной папке и mods, зачем лесть во всякие левые папки, например "здесь нассано" << и отуда берутся всякие txt и пр.

[pluspost=53 сек.]

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

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

[pluspost=33 сек.]

10к строк уже достаточно понять

у невады / мегамода и других не упакованных модов по 10к+ файлов в папках.

Ссылка на комментарий

кофиги лежат в корне и определеной папке и mods, зачем лесть во всякие левые папки, например "здесь нассано

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

Ссылка на комментарий
;Uncomment the line to specify a common path to folder for all scripted configuration ini-files

;You will need to place all the available ini-files of the mods to this directory

;The length of the specified path should not exceed 48 characters

IniConfigFolder=

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

[pluspost=41 сек.]

то только из корня скопирует без всяких мд5

смело бери из 

корня

mods

и папки из опции IniConfigFolder=

[pluspost=57 сек.]

скопирует без всяких мд5

если ты так хочешь этот md5 проверь сколько файлов в папке игы если меньшн 10к то делай.

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

Ссылка на комментарий

зачем тебе этот хеш?

Это на случай если захочу сделать автоматизированное распознавание версии игры/мода, но это так просто задел на будущее сделал.

 

если меньшн 10к то делай.

на 5к сделал проверку, это надо учитывать что игнорируются сейвы и тексты

[pluspost=2 сек.]

IniConfigFolder=

варианты записи какие доступны? IniConfigFolder=mods\iniConfigs IniConfigFolder=\mods\iniConfigs\  ?

__

а хрен с ним, вырежу слешы с краёв

Ссылка на комментарий

а хрен с ним, вырежу слешы с краёв

:hmr:

[pluspost=54 сек.]

Это на случай если захочу сделать автоматизированное распознавание версии

от тебе занятся нечем))

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

Ссылка на комментарий

текущая реализация

у тебя точно версия 2.7/2.8? в более старых это возможно, но не в текущей

 

_____

 

Проверяй на 2.9 копирование файлов

Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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