Я ищу баг с непонятно почему удаляющимся героем.
Я хочу заменить все функции удаления юнита на мою функцию для отладки, понятное дело я буду делать быстрой заменой, вручную я манал это делать, соответственно прописывать вручную в каждом месте имя функции откуда вызывается удаление не собираюсь.
В языках С и С++ есть некий макрос, который возвращает имя функции из которой его использовали и еще макрос номера строки на которой он находится.
Собственно вопрос, есть ли нечто похожее в jass? Чтобы можно было удобно локализовать из какой функции придет сообщение о баге, не вслепую же мне определять и прописывать в каждой функции её имя вторым аргументом.

Принятый ответ

Нет, но есть тула - Jass SPy которая позволяет следить когда какая функция вызывается и какие аргументы...
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
32
5 лет назад
0
Нет, но есть тула - Jass SPy которая позволяет следить когда какая функция вызывается и какие аргументы...
Принятый ответ
0
16
5 лет назад
0
нет, только реализовывать через второй аргумент, либо знать свой код наизусть, работать с чистым jass и использовать jassSpy на реплее с моментом, где пропал герой
0
24
5 лет назад
0
Как вариант - можно написать свой внешний парсер для замены и простановки отладочной информации и скормить ему j файл, а результат обратно импортировать в отладочную версию карты..
0
28
5 лет назад
Отредактирован PT153
0
Как вариант - можно написать свой внешний парсер для замены и простановки отладочной информации и скормить ему j файл, а результат обратно импортировать в отладочную версию карты..
Как только встречаем слово function, записываем имя. Если встречается RemoveUnit(), вставляем после call DisplayTimedTextToPlayer(GetLocalPlayer(), 0., 0., 5., NAME). Как только встречается endfunction, имя стираем.
0
24
5 лет назад
0
PT153, кривовато описал, но как-то так, да, если сильно не заморачиваться.
0
28
5 лет назад
Отредактирован PT153
0
Ну я написал такой скрипт на Python 3, держите.

При удалении юнита будет выведено следующее:
  • название переменной, в которой юнит хранится, или название функции с аргументами, из которой юнит был получен.
  • название функции, где было произведено удаление.

Требуется чистый JASS.
Добавил ввод путей. Только вводите нужные пути, я никакие проверки не ставил.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.