Re: swank sbcl patch
Luís Oliveira <[email protected]> Thu, 08 Feb 2018 11:42:15 +0000
| Newsgroups | gmane.lisp.slime.devel |
|---|---|
| Message-ID | <CAB-HnLSghyR8WWNoXmH5tiUSF8PT_H=hnkXKoFseVBhPKB0xAA@mail.gmail.com> |
Applied here: https://github.com/slime/slime/commit/81017fbc9e622d3f0f9fa4b35e35f9ab8c4d381b Thanks! Luís On Thu, Feb 8, 2018 at 4:22 AM Douglas Katzman <[email protected]> wrote: > Hi, > > Please apply this diff. There are multiple problems with the existing code. > * it seems to believe that DISASSEMBLE-CODE-COMPONENT only works on with > non-null %code-debug-info. That's not true; it works on any code object. So > depending on your standards, it's excessively wordy to just plain wrong. > > * (ash (sb-kernel:%code-code-size o) sb-vm:word-shift) causes buffer > overrun > > * sb-disassem::align can not be called > > See https://bugs.launchpad.net/sbcl/+bug/1748041 > Thanks > Doug > > --- a/swank/sbcl.lisp > +++ b/swank/sbcl.lisp > @@ -1613,18 +1613,7 @@ stack." > append (label-value-line i (sb-kernel:code-header-ref o i))) > `("Code:" (:newline) > , (with-output-to-string (s) > - (cond ((sb-kernel:%code-debug-info o) > - (sb-disassem:disassemble-code-component o :stream > s)) > - (t > - (sb-disassem:disassemble-memory > - (sb-disassem::align > - (+ (logandc2 (sb-kernel:get-lisp-obj-address o) > - sb-vm:lowtag-mask) > - (* sb-vm:code-constants-offset > - sb-vm:n-word-bytes)) > - (ash 1 sb-vm:n-lowtag-bits)) > - (ash (sb-kernel:%code-code-size o) > sb-vm:word-shift) > - :stream s))))))) > + (sb-disassem:disassemble-code-component o :stream s))))) > >