Автор Тема: Игнорирование ошибок в скомпилированном скрипте  (Прочитано 3071 раз)

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

Оффлайн firex [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 943
  • Репутация: 203
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
« Последнее редактирование: Февраль 09, 2015, 16:26:56 от firex »

Русское сообщество AutoIt

Игнорирование ошибок в скомпилированном скрипте
« Отправлен: Февраль 07, 2015, 03:03:04 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2797
  • Репутация: 472
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
компилировать нужно из комстроки, как я понял
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Неплохо! :ok:
А можно такое же для более ранних версии?
И вообще, может это можно использовать и для отлова этой самой ошибки?


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн firex [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 943

  • Автор темы
  • Репутация: 203
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
CreatoR  [?]
Цитировать
А можно такое же для более ранних версии?
Конечно.

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

joiner  [?]
Цитировать
компилировать нужно из комстроки, как я понял
Либо отключить проверку.

Русское сообщество AutoIt

Re: Игнорирование ошибок в скомпилированном скрипте
« Ответ #3 Отправлен: Февраль 07, 2015, 04:07:37 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
firex
Что нужно поменять что оно работало для других версий?
И ещё, для не скомпилированного скрипта это можно сделать?

Я так понимаю нужно знать офсет адреса где возникает ошибка, тогда как его узнать?

Оффлайн firex [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 943

  • Автор темы
  • Репутация: 203
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
CreatoR  [?]
Цитировать
Что нужно поменять что оно работало для других версий?
Портировать эти патчи на другие версии.

Цитировать
И ещё, для не скомпилированного скрипта это можно сделать?
Еще не смотрел, но в любом случае можно.

Цитировать
Я так понимаю нужно знать офсет адреса где возникает ошибка, тогда как его узнать?
Не совсем. Код организован достаточно удобно, и для обработки ошибок тут своя функция. Ее нужно лишь модифицировать.

На счет перехвата ошибок:
0004CE15:
68 10100100 ;(TYPE) PUSH 11010
FF75 AC ;(CAPTION)  PUSH DWORD PTR SS:[EBP-54]
FF75 EC ;(TEXT) PUSH DWORD PTR SS:[EBP-14]
FF35 E8101800 ;(hOwner) PUSH DWORD PTR DS:[1810E8]
FF15 E0D61400 ; CALL DWORD PTR DS:[<&USER32.MessageBoxW>] (__stdcall)
33C0 ; XOR EAX,EAX

90 90909090 ;NOP
9090 90 ;NOP
9090 90 ;NOP
FF75 EC 909090 ;(TEXT) PUSH DWORD PTR SS:[EBP-14]
FF15 XXXXXXXX ; CALL DWORD PTR DS:[<&DllCallback>] (__stdcall)
EB45 ; JMP SHORT 0004CE73 (+0x45)

Можно так. Как освобожусь - автоматизирую это дело.

Оффлайн Prog [?]

  • Осваивающий
  • **
  • Сообщений: 297
  • Репутация: 30
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Игнорирование ошибок может привести к совершенно непредсказуемому результату. Внешне будет казаться что программа работает нормально, но результат окажется совершенно другой. Ведь баг никуда не исчезнет. Т. е. это подобно страусу, спрятавшему голову в песке.

Оффлайн firex [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 943

  • Автор темы
  • Репутация: 203
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Prog  [?]
Цитировать
Игнорирование ошибок может привести к совершенно непредсказуемому результату. Внешне будет казаться что программа работает нормально, но результат окажется совершенно другой. Ведь баг никуда не исчезнет. Т. е. это подобно страусу, спрятавшему голову в песке.
Все зависит от логики построения кода. Был у меня проект, количество обрабатываемых данных сказывалось на скорости => мне пришлось упрощать где только мог. Свелось к тому, что я оставил лишь критически проверки на их валидность => последовало множество исключений( которые не сказываются на работе в целом, но AutoIt прекращает работу ).

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


Добавлено: Февраль 08, 2015, 02:03:42
Обновлено.
« Последнее редактирование: Февраль 08, 2015, 02:03:42 от firex, Причина: Объединение сообщений »

Русское сообщество AutoIt

Re: Игнорирование ошибок в скомпилированном скрипте
« Ответ #7 Отправлен: Февраль 07, 2015, 16:28:48 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
8244 Просмотров
Последний ответ Декабрь 30, 2010, 15:21:48
от CreatoR
70 Ответов
28311 Просмотров
Последний ответ Август 01, 2011, 00:59:34
от VladUs
2 Ответов
10881 Просмотров
Последний ответ Июнь 26, 2012, 19:14:00
от Yashied
1 Ответов
1399 Просмотров
Последний ответ Май 27, 2014, 17:13:04
от _dron_
2 Ответов
1478 Просмотров
Последний ответ Июнь 07, 2014, 17:44:49
от madmasles
4 Ответов
1677 Просмотров
Последний ответ Август 30, 2014, 13:59:41
от firex
2 Ответов
440 Просмотров
Последний ответ Ноябрь 13, 2017, 22:28:07
от Alofa
3 Ответов
458 Просмотров
Последний ответ Ноябрь 26, 2017, 20:06:51
от InnI
1 Ответов
412 Просмотров
Последний ответ Октябрь 25, 2018, 17:47:30
от xXx
3 Ответов
89 Просмотров
Последний ответ Ноябрь 16, 2018, 10:57:46
от joiner