Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

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 src/compiler/target-disassem.lisp
changed NEWS
src/compiler/target-disassem.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...