showTraceback

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

showTraceback

Post by John Doe »

Прототип утилиты для просмотра стека вызовов.
Над элементами списка доступны следующие действия:
  • просмотр локальных переменных (Enter), upvalues (CtrlUp) и окружения (CtrlDown)
    для просмотра используется используется модифицированная версия lua explorer
    изменение значений пока не поддерживается (разве что окружение, но не проверял)
  • открытие редактора с позиционированием на определение функции (но не место вызова)
    CtrlPgUp - немодальный редактор
    CtrlPgDn - модальный редактор, по закрытию возврат в список
Утилиту имеет смысл вызывать из собственных скриптов. Просто назначить макрос на её вызов - не достаточно, т.к. этот макрос будет исполняться в отдельном thread.

Утилита оформлена как составная часть модуля JD.debug

Пример использования прилагается в файле showTraceback_sample.lua

Update
Во вложении устаревший прототип, полнофункциональная версия будет опубликована позже
Attachments
showTraceback.7z
(1.37 KiB) Downloaded 138 times
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: showTraceback

Post by John Doe »

С открытием редакторов есть определённые проблемы:
- при открытии модального редактора возможна ситуация, когда этот файл уже открыт в другом редакторе.
Если файл отредактировать в модальном, то изменения НЕ перенесутся в другой редактор, а значит впоследствии могут быть молча затёрты.

- при открытии немодального редактора также возможна ситуация, когда файл уже открыт
В этом случае фар выдаёт запрос а что же делать.
Вероятно тут надо переключаться в уже открытый редактор, и позиционироваться на нужное место. Однако, это может быть невозможно, если на момент вызова активен модальный объект (меню/диалог/модальный редактор и др.)

P.S.
Если бы была возможность получить значения 'thread' активных в данный момент скриптов, то утилита была бы значительно полезнее.
(не уверен, но скорее всего это возможно, при наличии поддержки со стороны LuaMacro)
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: showTraceback

Post by John Doe »

John Doe wrote:Если бы была возможность получить значения 'thread' активных в данный момент скриптов[...]
Возможность есть, в виде массива RunningMacros.
Получить к нему доступ мне удалось только модифицировав luamacro.lua.
А "по-честному", или даже через debug - не вышло.


Update
Через debug получилось
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: showTraceback

Post by John Doe »

Подумалось, что RunningMacros это не главное.
На самом деле хотелось бы получить доступ не только к активным макросам, но в большей степени как раз к неактивным.
Ведь состояние каждого как-то сохраняется между вызовами.
К сожалению я пока далёк от понимания кухни в целом, и не вижу с какого краю вообще можно к этому подступиться.


Update
Хотя... Похоже я всё усложняю.
Нет никаких локальных переменных у неактивных макросов.
Есть только environment и upvalues.

Надо будет сделать удобный просмотр в Macro Browser
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

showTraceback

Post by citRiks »

Еще один переизобретенный (мною) велосипед :)
Не кажется ли вам что эта ваша тема родственна другой тоже вашей?
StackTracePlus — расширенный анализ стека
viewtopic.php?f=15&t=9611
Я туда же и свой (+@Xer0X) TraceBack приаттачивал гордясь (напрасно) проделанной работой
У слова "напрасно" тут можно ставить запятые по своему вкусу справа или слева.
Вы бы хоть сноски указывали в этих темах на логическое продолжение/предшествование
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

showTraceback

Post by citRiks »

John Doe wrote: Sun 12 May, 2013 22:49 Update
Во вложении устаревший прототип, полнофункциональная версия будет опубликована позже
А с этим что, есть обновление?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

showTraceback

Post by John Doe »

Судя по всему нет.
В какой-то из версий Lua Explorer шло в комплекте, но потом было выброшено (из-за неудовлетворительной реализации).
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Обсуждение макросов”