Ejemplo n.º 1
0
    void ktx_texture::get_keys(dynamic_string_array &keys) const
    {
        keys.resize(0);
        keys.reserve(m_key_values.size());

        for (uint32_t i = 0; i < m_key_values.size(); i++)
        {
            const uint8_vec &v = m_key_values[i];

            keys.enlarge(1)->set(reinterpret_cast<const char *>(v.get_ptr()));
        }
    }
Ejemplo n.º 2
0
    bool get_printable_backtrace(dynamic_string_array &string_vec)
    {
        string_vec.resize(0);

        const int N = 128;
        uintptr_t pcs[N];
        int n = backtrace_simple_get_pcs(pcs, N);
        if (!n)
            return false;

        VOGL_ASSERT(n <= N);
        if (n > N)
            return false;

        string_vec.reserve(n);

        for (int i = 0; i < n; i++)
        {
            stackframe_info info;
            utils::zero_object(info);
            if (backtrace_simple_resolve_pc(&info, pcs[i]))
            {
                string_vec.enlarge(1)->format("%u %s(%i), PC: 0x%llX, Ofs: 0x%llX, Mod: %s, Filename: \"%s\"", i,
                                              info.function ? demangle(info.function).get_ptr() : "?",
                                              info.linenumber,
                                              (uint64_t)info.pc, (uint64_t)info.offset,
                                              info.module ? info.module : "?",
                                              info.filename ? info.filename : "?");
            }
            else
            {
                string_vec.push_back("?");
            }
        }

        return true;
    }