diff --git a/crates/debug/src/transform/expression.rs b/crates/debug/src/transform/expression.rs index 601be39bf6..d21a00d4fe 100644 --- a/crates/debug/src/transform/expression.rs +++ b/crates/debug/src/transform/expression.rs @@ -458,7 +458,8 @@ where Operation::Deref { .. } => { flush_code_chunk!(); parts.push(CompiledExpressionPart::Deref); - continue; + // Don't re-enter the loop here (i.e. continue), because the + // DW_OP_deref still needs to be kept. } _ => { return Ok(None); @@ -724,7 +725,7 @@ mod tests { }, CompiledExpressionPart::Code(vec![35, 5]), CompiledExpressionPart::Deref, - CompiledExpressionPart::Code(vec![159]) + CompiledExpressionPart::Code(vec![6, 159]) ], need_deref: false }