diff --git a/src/symbol.cpp b/src/symbol.cpp index 52715d8..e1f19fd 100644 --- a/src/symbol.cpp +++ b/src/symbol.cpp @@ -261,6 +261,14 @@ std::optional Symbol::find_global_var(Dwarf_Debug dbg, const std::strin if (dwarf_diename(child_die, &name, &err) == DW_DLV_OK && name) { if (var_name == name) { + // Check if this is an integer type + if (!is_integer_type(dbg, child_die)) { + dwarf_dealloc(dbg, name, DW_DLA_STRING); + dwarf_dealloc(dbg, child_die, DW_DLA_DIE); + dwarf_dealloc(dbg, cu_die, DW_DLA_DIE); + return std::nullopt; + } + Dwarf_Addr addr = get_global_var_addr(dbg, child_die); size_t size = get_var_size(dbg, child_die);