A call to disassemble-code-component fails an AVER

Bug #1421987 reported by Lutz Euler on 2015-02-14
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Medium
Douglas Katzman

Bug Description

On sbcl-1.2.8.36-5261f72, x86-64 linux, built with default options, calling

(sb-disassem:disassemble-code-component #'sb-int:mix)

results in an failed AVER while outputting the unboxed data:

; Size: 272 bytes. Origin: #x1000E31A90 (segment 1 of 2)
; A90: .ENTRY SB-INT:MIX(X Y) ; (FUNCTION (# #)
                                                              ; (VALUES # ..))
; AC8: 8F4508 POP QWORD PTR [RBP+8]
[…]
; B7D: 0000 ADD [RAX], AL
; Unboxed data:
; B7F: 00
; B80: 010000000000008087
debugger invoked on a SB-INT:BUG in thread #<THREAD "main thread" RUNNING {1002D7E9E3}>: failed AVER: (OR (ENDP (CDR REFS)) (<= (+ # NBYTES) (CAADR REFS))) This is probably a bug in SBCL itself.
[…]
restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

(SB-INT:BUG "~@<failed AVER: ~2I~_~A~:>" (OR (ENDP (CDR SB-DISASSEM::REFS)) (<= (+ (SB-DISASSEM:DSTATE-CUR-OFFS SB-DISASSEM::DSTATE) SB-DISASSEM::NBYTES) (CAADR SB-DISASSEM::REFS))))

The output looked like this in version 1.2.7.25-0852224:

[…]
; Unboxed data:
; 577: 000100000000000080
; 580: 87B05888A8F64332
; 588: FEFFFFFFFFFFFF7F
; 590: E204A234AFD7E610
NIL

I bisected this to:

b048faf53e15c59cbd0d2066b5fb50808cc43efe is the first bad commit
commit b048faf53e15c59cbd0d2066b5fb50808cc43efe
Author: Douglas Katzman <email address hidden>
Date: Wed Jan 7 11:03:36 2015 -0500

    x86-64: Improve disassembler's DETERMINE-OPCODE-BOUNDS

That is sbcl-1.2.7-26-gb048faf.

Regards,

Lutz

Lutz Euler (lutz-euler) on 2015-02-14
tags: added: disassembler
Stas Boukarev (stassats) on 2015-02-14
Changed in sbcl:
status: New → Confirmed
importance: Undecided → Medium
Douglas Katzman (dougk) on 2015-02-19
Changed in sbcl:
assignee: nobody → Douglas Katzman (dougk)
Douglas Katzman (dougk) on 2015-02-20
Changed in sbcl:
status: Confirmed → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers