Что нового

[Ошибки] как найти в какой строке ошибка ?

Статус
Закрыто для дальнейших ответов.

mitiya

Новичок
Сообщения
75
Репутация
0
скомпелированый скрипт иногда выдает такую вот ошибку

(14670) : ==> Subscript used with non-Array variable.:

14670 - это я так понимаю строка где ошибка, но у меня в скрипте гораздо меньше строк. Я так понимаю это строка в бинарном файле, а как мне ее сопоставить со строкой в скрипте?
запускать как скрипт не хотелось бы.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
mitiya [?]
у меня в скрипте гораздо меньше строк. ... а как мне ее сопоставить со строкой в скрипте?
Эта строка получается так. В скрипте вместо каждого #include подставляете содержимое соответствующего файла. Если в тех файлах есть #include, то нужно тоже подставить содержимое, учитывая #include-once. Затем нужно удалить все пустые и закомментированные строки, а строки с переносами преобразовать в одну строку. Короче, довольно трудоёмкий процесс.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
InnI
Думаю это ещё не всё, ещё комментарии все удалить, возможно лишние переносы строк. Часть этой работы автоматически делает AutoIt3Wrapper+Obfuscator. Комментарии удалить скриптом. Я уже делал такие варианты исходников, если стандартное компилирование вызывает ошибку.

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

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
Тоже часто сталкивался раньше с такой проблемой и решил написать небольшую "утилиту" для таких случаев. Она запишет в лог что включается в данный момент (#Include) и запишет последнюю функцию, которая выполняется. А также запишет номер строки, которую он выполнил последнюю.

Вот ссылка на закачку (с Яндекс.диска), т.к. на форуме ограничение в 200 кб... http://yadi.sk/d/6u8k8Z203_Dua
Перетащи скрипт на значок AutoIt3_Debugger.exe и выбери параметры.
 
Статус
Закрыто для дальнейших ответов.
Верх