Skip to content

Instantly share code, notes, and snippets.

@rdp
Created November 20, 2019 01:19
Show Gist options
  • Save rdp/918af45b0ad68cd9bf2e0dc54cad5638 to your computer and use it in GitHub Desktop.
Save rdp/918af45b0ad68cd9bf2e0dc54cad5638 to your computer and use it in GitHub Desktop.
diff --git a/src/debug/dwarf/line_numbers.cr b/src/debug/dwarf/line_numbers.cr
index b4a11139b..790748d88 100644
--- a/src/debug/dwarf/line_numbers.cr
+++ b/src/debug/dwarf/line_numbers.cr
@@ -284,7 +284,9 @@ module Debug
operation_advance = adjusted_opcode // sequence.line_range
increment_address_and_op_index(operation_advance)
registers.line &+= sequence.line_base + (adjusted_opcode % sequence.line_range)
- register_to_matrix(sequence, registers)
+ if (registers.is_stmt || (registers.line.to_i > 0 && registers.column.to_i > 0))
+ register_to_matrix(sequence, registers)
+ end
registers.reset
elsif opcode == 0
# extended opcode
@@ -318,8 +320,10 @@ module Debug
standard_opcode = LNS.new(opcode)
case standard_opcode
- when LNS::Copy
- register_to_matrix(sequence, registers)
+ when LNS::Copy # we get here..
+ if (registers.is_stmt || (registers.line.to_i > 0 && registers.column.to_i > 0))
+ register_to_matrix(sequence, registers)
+ end
registers.reset
when LNS::AdvancePc
operation_advance = DWARF.read_unsigned_leb128(@io)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment