soggy.Documentation Back to Soggy ↗

Error Tracing

This snippet was created and submitted by LosAngeles.

Description

A function to print an error trace, with a default limit of 10.

Code

function error_trace(err)
    local stack = {err}
    local level = 2
    while true do
        local success, _ = pcall(getfenv, level)
        if not success or level >= 10 then
            break
        end

        local _, level_err = pcall(error, "", level)
        if level_err ~= "" then
            table.insert(stack, level .. ": " .. level_err:sub(1, #level_err - 2))
        end

        level = level + 1
    end
    error(table.concat(stack, "\n    "))
end

Type to search guides, functions and events.