bool get_printable_backtrace(dynamic_string_array &strings) { strings.resize(0); console::debug("TODO: %s\n", VOGL_FUNCTION_INFO_CSTR); return false; }
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 uint32_t BUF_SIZE = 256; void *buffer[BUF_SIZE]; int nptrs = backtrace(buffer, BUF_SIZE); if (!nptrs) return false; char **strings = backtrace_symbols(buffer, nptrs); if (!strings) return false; string_vec.resize(nptrs); for (int i = 0; i < nptrs; i++) string_vec[i].set(strings[i] ? strings[i] : "?"); free(strings); return true; }
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; }