Перейти к публикации
  • записей
    86
  • комментариев
    340
  • просмотра
    221 044

Прокачка стектрейса

Fingercomp

51 просмотр

Эта беспрецедентно короткая запись имеет начало своих ног в запросе @Laine_prikol, как-то спросивший в нашей ирке, можно ли стэктрейс сделать не таким тупым. Меня это заинтересовало, и спустя часик выросла очень короткая программка, которая рисует вот такие стэктрейсы:

# 0: C field function yield(...) (defined in [C])
# 1: Lua local function f(f=function: 0x55bea5785ef0, a=42, b=24, ...):79 (defined in trace.lua at L78)
# 2: Lua local function outer(f=function: 0x55bea608c900, g=function: 0x55bea5785ef0, a=42, b=24):75 (defined in trace.lua at L73)                                                                                                                            
# 3: Lua function <anon>:83 (defined in trace.lua at L72)

Заметили что-то необычное? Наконец-то пишется, какие аргументы имеются у функции, потому что это куда информативнее беглому взгляду, чем описание расположения и строки.

 

Код лежит на гисте: https://gist.github.com/Fingercomp/a688d221356cb371d940b947d0ca90a8. Использованы функции debug.getinfo и debug.getlocal. Аргументы должны писаться даже внутри OC, но уже без значений.

  • Like 1


0 комментариев


Рекомендованные комментарии

Нет комментариев для отображения

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Добавить комментарий...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×