debugger can't see locals in caller when AREF errors

Bug #1412881 reported by 3b on 2015-01-20
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

(defun foo (x z)
  (declare (optimize (debug 3)))
  (let ((y (list 1 1)))
    (break "x" y)
    (aref x z)
    (print (/ 1 z))))

(foo #(1) 1)
(foo #(1) 0)

in both cases, L in debugger from BREAK shows
X = #(1)
Y = (1 1)
Z = 0

after continuing from break in first form, AREF errors with SB-INT:INVALID-ARRAY-INDEX-ERROR, and after 'fra 1' shows L
X = #(1)
Z = 1

after continuing from break in second form, / errors withDIVISION-BY-ZERO , and after 'fra 1' shows L
X = #(1)
Y = (1 1)
Z = 0

with AREF declared NOTINLINE, the debugger shows Y as expected in caller frame

tested on arm/linux, x8664 linux, and x8664 linux

Stas Boukarev (stassats) wrote :

That doesn't happen with debug 2.

Changed in sbcl:
status: New → Confirmed
importance: Undecided → Low
status: Confirmed → Triaged
Stas Boukarev (stassats) wrote :

In 05845e173791a73c692e4a5d27d361a331e11859

Changed in sbcl:
status: Triaged → 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