Что нового

[Окна, Диалоги] Временная таблица

lazarxxx

Новичок
Сообщения
53
Репутация
2
Доброго всем времени!
Часто довольно многие сталкивались с такой проблемой, цикл или функция запускается без ошибки, но часто из за своей же невнимательности (перепутал данные, плюс вместо минуса перепутал) в конце получается совсем не то что ты ожидал!
В этом случае я как правило использую MsgBox вставляя его в программу.
В принципе всё устраивает кроме того что иногда надо в месте остановки программы узнать не одну переменную а пять-десять!
Допустим
Код:
dim $a=1000, $r=45, $rt="Координата",$j="Ширина"

Возможно ли это вывести (не при помощи Gui) примерно так

Координаты 1000
Ширина 45

Заранее благодарен!
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
dim $a=1000, $r=45, $rt="Координата", $j="Ширина"
; вариант 1
ConsoleWrite($rt & " " & $a & @CRLF & $j & " " & $r & @CRLF)
FileWrite("log.txt", $rt & " " & $a & @CRLF & $j & " " & $r & @CRLF)
MsgBox(0, "Debug", $rt & " " & $a & @CRLF & $j & " " & $r)
; вариант 2
$str = $rt & " " & $a & @CRLF & $j & " " & $r
ConsoleWrite($str & @CRLF)
FileWrite("log.txt", $str & @CRLF)
MsgBox(0, "Debug", $str)
 

sims

Осваивающий
Сообщения
184
Репутация
24
Вам нужно просить разрабов автоита чтобы прикрутили отладчик к IDE.
Тогда средствами отладчика можно получить то, что вам нужно.

Пример из другой IDE.

D81NH.png
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
sims
А в коде разве не видишь чему они равны? А те что тестируешь в данный момент, кликай на переменной и жми Alt+D, вот и вставится нужная строка отладчика. В меню есть "Удалить все строки отладки".
 

sims

Осваивающий
Сообщения
184
Репутация
24
AZJIO [?]
А те что тестируешь в данный момент, кликай на переменной и жми Alt+D, вот и вставится нужная строка отладчика. В меню есть "Удалить все строки отладки".
Что-то не сработало. И в меню нет ничего похожего на "Удалить из отладки".

А в коде разве не видишь чему они равны?
Это был простейший пример.
По сложнее. Здесь уже не все так однозначно.

H0y8w.png


Но дело ваше.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
sims
"Удалить из отладки".
Tools --> Debug Remove Lines
У меня работает

А если 200 переменных, удобно ли будет их вот так вот просматривать? Я даже хотел упростить, написал функцию из одной буквы в имени, чтобы кратко вводить (в Notepad++), но по привычке ввожу ms, Enter, Ctrl+V, для вставки MsgBox с переменной. А вообще вставку/удаление кода отладки организовать не сложно и на скриптах. Удалить все строки содержащие имя функции отладки можно хоть на рег.выр, хоть на строковых функциях.
 

sims

Осваивающий
Сообщения
184
Репутация
24
AZJIO [?]
Tools --> Debug Remove Lines
В редакторе автоита в меню Tools нет Debug Remove Lines. :scratch: :-\


А если 200 переменных, удобно ли будет их вот так вот просматривать?
Кто же в здравом уме создаст 200 переменных в пределах одного пространства видимости?
Обычно их бывает до 10, ну максимум 20, если в проекте несколько десятков тысяч строк. И только пара из них глобальные. Вообще, глобальные переменные лучше не использовать.
Но если допустить что их много, то в отладчике той IDE можно выбрать за какими переменными наблюдать.

zRewK.png


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

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
sims [?]
Так что просите разрабов прикрутить к автоиту нормальный отладчик и разработка проектов станет намного проще.
отладчик есть, на офф сайте кто то делал.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Есть _DebugReportVar в справке. Вот функция z, я написал и хотел использовать, но так как в каждый тестовый скрипт, который живёт пару минут приходится прописывать #include, то не прижился пока.

Просмотр переменных не является панацей от всех бед, там может быть и логическая ошибка и опечатка и перепутывания индексов цикла, так что точечный подход пока устраивает. Кстати те же пробы с отладчиком в Си у меня вызывали больше проблем, ведь код компилируется только когда исправлены ошибки, а до куда он дошёл во время исполнения (как в AutoIt3) не известно. Сообщения на английском языке и возможно понятными они будут когда выучишь язык Си в совершенстве (в AutoIt3 тоже в совершенстве можно знать что возвращено). А в Си ещё надо полминуты дождаться компилирования, так что в плане выявления ошибок и теста AutoIt3 сейчас для меня легче.
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
А нет существующих на данный момент врапперов? Хотя-бы прописывающего после каждой строки функцию, которая обращается к отладчику с целью отслеживания значений переменных и с целью трассировки?
 

sims

Осваивающий
Сообщения
184
Репутация
24
AZJIO [?]
Кстати те же пробы с отладчиком в Си у меня вызывали больше проблем, ведь код компилируется только когда исправлены ошибки, а до куда он дошёл во время исполнения (как в AutoIt3) не известно.
В окне вывода пишет номер строки с ошибкой? Если нет, то компиль в утиль и ищите более адекватный.

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

А в Си ещё надо полминуты дождаться компилирования
Что компилировали? Исходник винды? :rofl: ;)
У меня даже несколько тысяч строк компилятся на пару секунд.
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
MnM:

Я еще на АМД К6-2 333 быстро все компилил с помощью VC6 и BCB6. Уже тогда существовали Precompiled Headers (Вперед-скомпелированные заголовки). Компилятор только выяснял какие строки изменились и где-то через 3-5 сек запускался отладчик... Да и оперативки было 64метра
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
MnM
Даже если у меня память в 2 раза меньше (4 Гб) и процессор двух ядерный, а не 8, а i9 я понимаю чипсет, а не процессор, да, сгорел i9, пришлось бесплатно с i7 поставить материнскую плату. Но не в этом дело, 12 сек и несколько миллисекунд это конечно не ограничение памяти повлияло.

sims
В окне вывода пишет номер строки с ошибкой? Если нет, то компиль в утиль и ищите более адекватный.
Номер строки не совпадает, потому что интерпретатор не понимает что я забыл поставить кавычку в конце и ищет ошибку в следующей строке, а я весь мозг сломал на следующей строке. Хорошо искать правильный дистриб. если знаешь что он есть, а сколько камней в свой огород получил, что понял, лучше на AutoIt3 пока сидеть с отзывчивыми людьми на форуме.

Но это у нас пошёл уже оффтопик...
 

sims

Осваивающий
Сообщения
184
Репутация
24
MnM [?]
Не у всех есть терабайтные ОЗУ и процессор intel core i9
Копилил на древнем ноуте с 512 метрами памяти и одноядерным процем 2 ГГц.
Сейчас вот засек время компиления в PB 24 тысячи строк. Собственно компиление заняло полсекунды, а сборка объектника и линковка 1 секунду. Если выключить антивирус, то на линковку тратится в два раза меньше времени.


AZJIO [?]
Номер строки не совпадает, потому что интерпретатор не понимает что я забыл поставить кавычку в конце и ищет ошибку в следующей строке, а я весь мозг сломал на следующей строке.
Только начинаете осваивать Си?
Такое бывает по началу, а потом быстро будете находить проблемную строку.
Но раз так напрягает, то может стоит перейти на другой ЯП у которого нет привязки окончания строки к точке с запятой? :smile:

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