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())); } }
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; }