Что нового

AutoIt Debugger - Отладчик AutoIt3 скриптов

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
AutoIt: 3.3.6.1+
Версия: 1.0
Категория: Разное
Описание: Отладчик AutoIt3 скриптов

Снимки:
eefe56d30a51.jpg

df2df9e1760d.jpg

e8bb10ccbac3.jpg

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

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

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

e753caa20c65.jpg


Также, Вы можете более детально ознакомиться с ходом Выполнения Вашего скрипта, используя логи отладчика, которые будут сохранены в папку с именем "<Имя скрипта>_deblog". Дополнительную информацию можно увидеть при установке.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628

и еще момент. нажал "не устанавливать", а отладчик все равно установился..не хорошо как то :smile:
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
joiner [?]
и еще момент. нажал "не устанавливать", а отладчик все равно установился..не хорошо как то

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

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Astel064 [?]
это приводит к ошибке?
приводит к ошибке и при запуске из редактора и при компиляции
на предыдущем снимке видно, что логика кода нарушена. вот второй пример - неправильно расставлены кавычки
Код:
$iMsgBoxAnswer = MsgBox(262196,"Информация!","Объем копируемых файлов больше, чем объем свободного места на диске." & @CRLF & "Для продолжения копирования нажмите "Да" " & @CRLF & "Для завершения работы нажмите "Нет"")

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

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
joiner [?]
приводит к ошибке и при запуске из редактора и при компиляциина предыдущем снимке видно, что логика кода нарушена. вот второй пример - неправильно расставлены кавычки

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

   Case $iMsgBoxAnswer = 7 ;No

EndSelect


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

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Astel064
не все коды выпадают с ошибкой, но в простых кодах не нужен дебагер.
и дело не в версии, а в логике кода. в ней ошибка при обработке некоторых скриптов . выше я указывал на ошибки.
ошибка в построении
"If" statement has no matching "EndIf"

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


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

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Этот дебагер выводит в консоль строку выполнения и все?
Если так, то тоже самое делает директива #AutoIt3Wrapper_Run_Debug_Mode=Y
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
inververs [?]
Этот дебагер выводит в консоль строку выполнения и все?


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

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

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Astel064
я указал на ошибки твоего отладчика. ты автор - тебе разбираться. отладчик должен работать в любом скрипте без ошибок. сама идея мне нравится. вот поэтому и тестил.
а в первом сообщении сделай более подробное описание работы отладчика.
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
joiner [?]
а в первом сообщении сделай более подробное описание работы отладчика.
Сделаю


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

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в первом скрине я показал какие ошибки вываливаются после обработки скрипта твоим дебагером..
и далее по теме в моих сообщениях был обзор ошибок, которые выдает код после обработки дебагером..естественно, я использовал рабочие коды. один из них это моя программа, другой это новая функция _ArrayDisplay()
на скрине во втором сообщении видно, что твой дебагер вставил строчку там, где ее не должно быть
посмотри внимательно
насчет кавычек в коде я понятно написал?
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
joiner [?]
насчет кавычек в коде я понятно написал?
Понятно, но изначально не понял, что Вы рассчитывали, что он сам их исправит :smile:

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

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

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Astel064 [?]
Вы получите ошибку, когда запустите уже скомпилированный скрипт, или нет???

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



Добавлено:
Сообщение автоматически объединено:

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