Commit [ca5da6]  Maximize  Restore  History

Fix offsets of source tracking hooks in the disassembler.

The disassembler by default annotates code compiled under a sufficiently
high DEBUG optimization quality with source code fragments. This was
mostly broken: these annotations were being printed in the wrong place
(many lines too far into the output) or not at all.

The reason for this behaviour was that ADD-SOURCE-TRACKING-HOOKS
calculated the annotation's offsets relative to the start of the
instructions in the code component and passed them unchanged to the
hooks used to print the annotations, which expect them to be relative
to the start of the segment.

Fix this by adding code in ADD-SOURCE-TRACKING-HOOKS to convert the
offsets appropriately.

This bug seems to have been inherited already from CMUCL and it only
attracted attention when a change to the handling of prefix instructions
added a new failure mode to the existing ones, namely source annotations
breaking up disassembly lines inmidst the instruction bytes. See
lp#1249205 for details.

Fixes lp#1249205.

Lutz Euler Lutz Euler 2014-02-02

changed NEWS
changed src/compiler/target-disassem.lisp
NEWS Diff Switch to side-by-side view
src/compiler/target-disassem.lisp Diff Switch to side-by-side view

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks