OpenResty XRay YLua Analyzer

关于 YLua 分析器

YLua 分析器让你能够用 Lua 的语法来写 Lua 分析器。很多时候,我们希望能够确认 Lua 的表中到底有哪些数据,数据的值是什么。这时候 YLua 分析器就可以派上用场。

YLua 分析器实例

下面的例子输出了 resty.core.regex 中缓存的正则表达式。

probe process.begin
    local max_output_cnt = 1000
    local regex = package.loaded["resty.core.regex"]
    local regex_match_cache = upval(regex.re_match_compile, "regex_match_cache")

    if regex_match_cache ~= nil then
        local match_regex_cache_count = 0
        for key, _ in pairs(regex_match_cache.key2node) do
            if match_regex_cache_count < max_output_cnt then
                print("match-pattern: ", key)
            end
            match_regex_cache_count = match_regex_cache_count + 1
        end

        print("match_regex_cache_count: ", match_regex_cache_count)
    end

    exit()
end

执行该工具后,我们得到如下的输出:

在 YLua 标签栏的右边有 Learn YLua 快捷链接指向 YLua 的用户手册。用户可以点击 该链接查询 YLua 的语法和功能说明。