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 的語法和功能說明。