Автор Тема: AutoIt Debugger - Отладчик AutoIt3 скриптов  (Прочитано 7526 раз)

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

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 258
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
AutoIt: 3.3.6.1+
Версия: 1.0
Категория: Разное
Описание: Отладчик AutoIt3 скриптов

Снимки:
(нажмите для показа/скрытия)

Файл: AutoIt Debugger
Автор: Astel064

Для чего нужен этот отладчик (пример):
Вы тестируете свой скрипт, он работает без ошибок. После чего Вы его компилируете, запускаете скомпилированный скрипт и получаете ошибку, при этом, Вы имеете только номер строки, на которой возникла ошибка. Сам номер Вам конечно-же ничего не дает.
В этом случае, Вам поможет этот отладчик:
• Кликнете правой кнопкой мыши по Вашему скрипту, выберите "Создать отладочный скрипт".
• Сохраните и скомпилируйте полученный (отладочный) скрипт.
• При запуске откроется окно консоли, где будут отображаться строки кода (с номерами, командами и именами файлов, в которых расположены эти строки), которые выполняются в данный момент.
Сначала производится вывод информации в консоль, затем выполнение этой команды. Если произойдет ошибка - Вы видите на какой строке (№) произошла ошибка, какой это был файл (#include "", до компиляции), ну и собственно саму строку кода.

В качестве примера работы, я взял пример GUICreate из справки:



Также, Вы можете более детально ознакомиться с ходом Выполнения Вашего скрипта, используя логи отладчика, которые будут сохранены в папку с именем "<Имя скрипта>_deblog". Дополнительную информацию можно увидеть при установке.
« Последнее редактирование: Январь 28, 2014, 16:57:25 от Astel064 »

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

AutoIt Debugger - Отладчик AutoIt3 скриптов
« Отправлен: Январь 26, 2014, 19:32:53 »

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2760
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #1, Отправлен: Январь 26, 2014, 23:30:55 »

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

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 258

  • Автор темы
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #2, Отправлен: Январь 27, 2014, 03:19:14 »
joiner  [?]
Цитировать
и еще момент. нажал "не устанавливать", а отладчик все равно установился..не хорошо как то

Извиняюсь, перепутал кнопки, вместо 6, 7 поставил 1 и 2, а вот на счет фото - не совсем понятно: при выполнении отладочного скрипта (после его компиляции) это приводит к ошибке?  :)

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2760
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #3, Отправлен: Январь 27, 2014, 08:35:42 »
Astel064  [?]
Цитировать
это приводит к ошибке?
приводит к ошибке и при запуске из редактора и при компиляции
на предыдущем снимке видно, что логика кода нарушена. вот второй пример - неправильно расставлены кавычки
Код: AutoIt [Выделить]
$iMsgBoxAnswer = MsgBox(262196,"Информация!","Объем копируемых файлов больше, чем объем свободного места на диске." & @CRLF & "Для продолжения копирования нажмите "Да" " & @CRLF & "Для завершения работы нажмите "Нет"")

и опять про ошибку построения кода. после обработки моего скрипта твоей программой
Код: AutoIt [Выделить]
C:\Users\master\Desktop\???????\CopyEX\?????????\Copy??_Debug.au3 (4647) : ==> "If" statement has no matching "EndIf" statement.:
EndFunc


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

Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #3 Отправлен: Январь 27, 2014, 08:35:42 »

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 258

  • Автор темы
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #4, Отправлен: Январь 28, 2014, 08:09:29 »
joiner  [?]
Цитировать
приводит к ошибке и при запуске из редактора и при компиляциина предыдущем снимке видно, что логика кода нарушена. вот второй пример - неправильно расставлены кавычки

Странно, но у меня на 3.3.6.1 все нормально...
Попробуйте создать отладочный скрипт для этого кода:
Код: AutoIt [Выделить]
Dim $iMsgBoxAnswer
$iMsgBoxAnswer = MsgBox(49,"","")
Select
   Case $iMsgBoxAnswer = 6 ;Yes

   Case $iMsgBoxAnswer = 7 ;No

EndSelect
 


Скомпилируйте и запустите его.

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2760
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #5, Отправлен: Январь 28, 2014, 10:12:00 »
Astel064
не все коды выпадают с ошибкой, но в простых кодах не нужен дебагер.
и дело не в версии, а в логике кода. в ней ошибка при обработке некоторых скриптов . выше я указывал на ошибки.
ошибка в построении
"If" statement has no matching "EndIf"

  лишние кавычки или наоборот их не хватает
сравни . в подсветке кода черным указаны символы,для которых использован не верный синтаксис.
Код: AutoIt [Выделить]
$iMsgBoxAnswer = MsgBox(262196,"Информация!","Объем копируемых файлов больше, чем объем свободного места на диске." & @CRLF & "Для продолжения копирования нажмите "Да" " & @CRLF & "Для завершения работы нажмите "Нет"")


здесь тот же код, но с правильным синтаксисом
Код: AutoIt [Выделить]
$iMsgBoxAnswer = MsgBox(262196,"Информация!","Объем копируемых файлов больше, чем объем свободного места на диске." & @CRLF & "Для продолжения копирования нажмите 'Да'" & @CRLF & "Для завершения работы нажмите 'Нет'")



Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 461
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #6, Отправлен: Январь 28, 2014, 11:29:43 »
Этот дебагер выводит в консоль строку выполнения и все?
Если так, то тоже самое делает директива #AutoIt3Wrapper_Run_Debug_Mode=Y

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 258

  • Автор темы
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #7, Отправлен: Январь 28, 2014, 12:25:37 »
inververs  [?]
Цитировать
Этот дебагер выводит в консоль строку выполнения и все?


Именно это, а то я не понял к чему это:
joiner  [?]
Цитировать
не все коды выпадают с ошибкой, но в простых кодах не нужен дебагер.и дело не в версии, а в логике кода. в ней ошибка при обработке некоторых скриптов . выше я указывал на ошибки.ошибка в построении "If" statement has no matching "EndIf"

А вот на счет директивы #AutoIt3Wrapper_Run_Debug_Mode=Y - лично у меня она не работает, поэтому и пришлось импровизировать, сочиняя этот отладчик. Сейчас подправлю первый пост, чтобы люди понимали, что это.

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

Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #7 Отправлен: Январь 28, 2014, 12:25:37 »

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2760
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #8, Отправлен: Январь 28, 2014, 13:00:00 »
Astel064
я указал на ошибки твоего отладчика. ты автор - тебе разбираться. отладчик должен работать в любом скрипте без ошибок. сама идея мне нравится. вот поэтому и тестил.
а в первом сообщении сделай более подробное описание работы отладчика.

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 258

  • Автор темы
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #9, Отправлен: Январь 28, 2014, 13:04:53 »
joiner  [?]
Цитировать
а в первом сообщении сделай более подробное описание работы отладчика.
Сделаю


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

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2760
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #10, Отправлен: Январь 28, 2014, 13:17:28 »
 в первом скрине я показал какие ошибки вываливаются после обработки скрипта твоим дебагером..
и далее по теме в моих сообщениях был обзор ошибок, которые выдает код после обработки дебагером..естественно, я использовал рабочие коды. один из них это моя программа, другой это новая функция _ArrayDisplay()
на скрине во втором сообщении видно, что твой дебагер вставил строчку там, где ее не должно быть
посмотри внимательно
насчет кавычек в коде я понятно написал?

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 258

  • Автор темы
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #11, Отправлен: Январь 28, 2014, 13:41:38 »
joiner  [?]
Цитировать
насчет кавычек в коде я понятно написал?
Понятно, но изначально не понял, что Вы рассчитывали, что он сам их исправит :)

Вот про строку, там где ее не должно быть:
Понятно дело, что AU3Check будет ее считать за ошибку. Если Вы скомпилируете отладочный скрипт для Вашего рабочего скрипта, и уже скомпилированный скрипт запустите - будет ошибка, которую выдаст сам AutoIt, а не AU3Check?

Попробую еще раз, другими словами: Возьмите свою рабочую программу, от нее создайте отладочный скрипт, его скомпилируйте, после чего скомпилированный запустите. Вы получите ошибку, когда запустите уже скомпилированный скрипт, или нет???  :blink: :)

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2760
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #12, Отправлен: Январь 28, 2014, 13:58:30 »
Astel064  [?]
Цитировать
Вы получите ошибку, когда запустите уже скомпилированный скрипт, или нет???

я писал ранее
joiner  [?]
Цитировать
приводит к ошибке и при запуске из редактора и при компиляции



Добавлено: Январь 28, 2014, 14:06:57
дополнительные тесты дали положительный результат. скорее всего я в чем то ошибся.
Astel064, отладчик работает.
« Последнее редактирование: Январь 28, 2014, 14:06:57 от joiner, Причина: Объединение сообщений »

Оффлайн Astel064 [?]

  • Осваивающий
  • **
  • Сообщений: 258

  • Автор темы
  • Репутация: 44
  • Пол: Мужской
  • Помог мой пост, ставь +!
    • Astel064
    • Награды
  • Версия AutoIt: 3.3.6.1
Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #13, Отправлен: Январь 28, 2014, 16:52:59 »
joiner  [?]
Цитировать
Astel064, отладчик работает.
Рад, что не бесполезен форуму :)

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

Re: AutoIt Debugger - Отладчик AutoIt3 скриптов
« Ответ #13 Отправлен: Январь 28, 2014, 16:52:59 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
6034 Просмотров
Последний ответ Декабрь 31, 2009, 17:28:32
от Medic84
12 Ответов
24646 Просмотров
Последний ответ Август 27, 2011, 20:09:15
от Nero21
5 Ответов
5248 Просмотров
Последний ответ Май 07, 2011, 02:33:42
от Kaster
0 Ответов
2565 Просмотров
Последний ответ Май 07, 2011, 02:33:54
от Kaster
6 Ответов
9207 Просмотров
Последний ответ Май 07, 2013, 20:34:05
от person888
6 Ответов
5913 Просмотров
Последний ответ Июль 13, 2011, 15:06:21
от CreatoR
9 Ответов
8834 Просмотров
Последний ответ Июль 20, 2011, 08:57:56
от Afonichev
35 Ответов
37737 Просмотров
Последний ответ Май 07, 2015, 18:10:55
от CreatoR
9 Ответов
4798 Просмотров
Последний ответ Январь 28, 2013, 12:53:18
от jam
0 Ответов
1426 Просмотров
Последний ответ Январь 26, 2014, 19:20:42
от Astel064