Найти все ссылки на объект в Lua - PullRequest
5 голосов
/ 23 августа 2011

У меня утечка памяти в Lua-части моего приложения. По какой-то причине мой объект не удаляется, когда должен (даже когда я вызываю collectgarbage("collect")). Я предполагаю, что это означает, что у меня есть свисающая ссылка где-то.

Так, как я могу получить список, где находятся различные ссылки на объект? Например:

obj = MyObject()
ref = obj
tbl = {obj}
obj = nil
print(getreferences(obj)) -- should print something like _G.ref, _G.tbl[1]

Я просто написал бы свою собственную функцию для этого, но он не смог бы найти ссылки, содержащиеся внутри замыканий. Любой совет?

1 Ответ

3 голосов
/ 24 августа 2011

Есть инструмент для пересечения всей вселенной Lua.См. http://lua -users.org / lists / lua-l / 2006-07 / msg00110.html

...