- 1
- 2
- 3
do debug.getinfo(1).func() end --рекурсия
do debug.getinfo(2).func() end --вылет нахуй интерпретатора 5.3 версии без ошибки.
do debug.getinfo(3).func() end --не существует с таким индексом. Ошибка.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
do debug.getinfo(1).func() end --рекурсия
do debug.getinfo(2).func() end --вылет нахуй интерпретатора 5.3 версии без ошибки.
do debug.getinfo(3).func() end --не существует с таким индексом. Ошибка.
Lorip1971 01.02.2019 14:59 # +1
https://www.lua.org/pil/23.1.html
Похоже lua сгнил
TOPT 01.02.2019 18:38 # +1
bormand 01.02.2019 18:43 # 0
Lorip1971 01.02.2019 18:59 # 0
> do print(debug.getinfo(2)) end
table: 0000000000d69f00
но:
> do local x = {}; print(x) x() end
table: 0000000000d6a400
stdin:1: attempt to call a table value (local 'x')
stack traceback:
stdin:1: in main chunk
[C]: in ?
bormand 01.02.2019 19:00 # 0
Lorip1971 01.02.2019 19:03 # 0
currentline -1
namewhat
linedefined -1
isvararg true
lastlinedefined -1
source =[C]
nups 0
func function: 0000000000401dc0
istailcall false
short_src [C]
nparams 0
what C
bormand 01.02.2019 19:07 # 0
3oJIoTou_xyu 02.02.2019 06:17 # 0
с do for k,v in pairs(debug.getinfo(0)) do print(k, v) end end выводит фактически аналогичные параметры.
Только отличает ее функция и параметр namewhat (там вроде фиелд написано). Притом что если я вызову func вызовется debug.getinfo.
Значит неожиданно стек вызовов в lua индексируется с 0! И 0 и последние вызовы вызываются из С, так как currentline -1 говорит нам о том что это вызвалось вне луа. Значит если в даном случае вызвать debug.getinfo(1).func() то debug.getinfo вызовет само из себя. следовательно рекурсия.
Тогда что лежит во 2 блоке?
bormand 02.02.2019 08:00 # 0
Походу там лежит специальный фрейм для возврата в сишку.
bormand 02.02.2019 08:55 # 0
3oJIoTou_xyu 03.02.2019 05:56 # 0
bormand 03.02.2019 07:33 # 0
guest8 03.02.2019 18:25 # −999
bormand 03.02.2019 18:48 # 0
Rooster 03.02.2019 18:51 # +1
1024-- 03.02.2019 19:22 # 0
guest8 04.02.2019 00:07 # −999
3oJIoTou_xyu 04.02.2019 13:07 # 0
Xyu_HE_3HAET 22.04.2019 04:15 # 0
guest8 22.04.2019 04:16 # −999
gueest8 07.02.2019 12:50 # 0
3oJIoTou_xyu 07.02.2019 12:53 # 0
guest8 07.02.2019 13:24 # −999
raMagPuJI 04.10.2019 02:11 # 0
guest8 18.03.2019 21:28 # −999
guest8 18.03.2019 21:48 # −999
TOPT 19.03.2019 15:47 # 0
guest8 22.04.2019 04:21 # −999
Xyu_HE_3HAET 22.04.2019 05:45 # 0
Мы не можем подключиться к серверу www.umi.cms.
PACTPOBblu_nemyx 22.04.2019 12:06 # 0