Что нового

[Новая функция] Запрос на расширение функционала @ScriptLineNumber

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Есть такая переменная в среде AutoIt
Код:
@ScriptLineNumber - Номер строки скрипта, выполняемой в данный момент. Не имеет смысла для скомпилированных скриптов.

Хотя, при возникновении ошибки в скомпилированном скрипте, нам сразу вываливается окно с указанием строки, в которой возникла ошибка. То есть интерпретатор, построив общий скрипт со всеми #Include, всё равно фиксирует номер выполняемой строки и даже выдёт эту информацию при краше скрипта.

И вот когда вы отдаёте кому-то скомпилированный скрипт, а он присылает вам скрин с сообщением об ошибке где указан этот общий номер строки, то вам, собственно, нужно понять - а какая же строка в вашем скрипте соответсвует этому номеру. Так вот если бы вот тот самый макрос @ScriptLineNumber функционировал бы и в скомпилированном скрипте и содержал номер выполняемой строки в итоговом скрипте exe-шника, то это очень облегчило бы задачу поиска проблемного участка кода.

Запрос на расширение функционала:
Макрос @ScriptLineNumber сделать работающим и в скомпилированных скриптах. Значение макроса в скомпилированных скриптах должно совпадать со значением счетчика строк, который используется для вывода сообщений об ошибке при краше скрипта.
 

AZJIO

Меценат
Меценат
Сообщения
2,878
Репутация
1,194
C2H5OH [?]
то это очень облегчило бы задачу поиска проблемного участка кода.
На офсайте пишут что нужно скомпилировать скрипт с обфускацией, чтобы включились все Include, тогда строка ошибки с сообщении будет совпадать со строкой вызвавшей ошибку.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Кажется уже обсуждалось...

Можно на этапе компиляции “запомнить” число строк главного скрипта (без вложений), и число строк вложенных скриптов, и соответственно делать подсчёт из полученной строки.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
joiner
Полагаю можно посчитать количество строк для каждого #include
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
я понял что можно посчитать. вручную? :smile:
и как будет реализован отчет во время краха скрипта?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
joiner [?]
Код:
...

#AutoIt3Wrapper_Run_Before=ScriptName.au3 /GetLinesCount

If StringInStr($CmdLineRaw, '/GetLinesCount') Then
	;Тут считаем количество строк вложенных файлов + количество строк текущего (главного) скрипта
	;Записываем допустим во временный файл
	;Далее просто вешаем мониторинг краха, и выводим корректную строку ошибки
	
	Exit
EndIf

...
 
Верх