From d3596dbaa4f33e4f9fc78cfb3d29ffef934b1705 Mon Sep 17 00:00:00 2001 From: Vi <82741743+SamuraiOndo@users.noreply.github.com> Date: Sat, 30 Aug 2025 12:03:48 -0500 Subject: [PATCH] account for enum size in dwarf dump (#110) --- src/util/dwarf.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/util/dwarf.rs b/src/util/dwarf.rs index e82816e..12435a0 100644 --- a/src/util/dwarf.rs +++ b/src/util/dwarf.rs @@ -2142,9 +2142,16 @@ fn process_enumeration_tag(info: &DwarfInfo, tag: &Tag) -> Result { let mut cursor = Cursor::new(data); while cursor.position() < data.len() as u64 { - let value = i32::from_reader(&mut cursor, info.e)?; + let value = match byte_size { + Some(1) => Some(i8::from_reader(&mut cursor, info.e)? as i32), + Some(2) => Some(i16::from_reader(&mut cursor, info.e)? as i32), + Some(4) => Some(i32::from_reader(&mut cursor, info.e)?), + _ => None, + }; let name = read_string(&mut cursor)?; - members.push(EnumerationMember { name, value }); + if let Some(value) = value { + members.push(EnumerationMember { name, value }); + } } } (AttributeKind::Member, &AttributeValue::Reference(_key)) => {