[Dwarf-discuss] dwarf - debug line number information program state machine registers
Michael Eager
eager@eagercon.com
Fri May 11 15:19:34 GMT 2007
Daniel Jacobowitz wrote:
> On Fri, May 11, 2007 at 11:28:13AM +0530, Ramanaiah Nalamothu wrote:
>> The immediate instruction following .LM2 and .LM3 sets start of the basic
>> block i.e. "basic_block". And that instructions' address flags end of
>> sequence i.e. "end_sequence".
>
> That's not what end_sequence means. It should be used for each
> segment of the line number table that is not contiguous. Suppose you
> have a file containing one instruction; it should have a line table
> entry for that instruction, advance to after the instruction and have
> an end of sequence. This ensures that random memory after that object
> file in memory will not be associated with the same line.
For another example, switch statements can be compiled into a jump table:
ld r1,value ; switch (value) {
shl r1,2
ld r1,tbl(r1)
br r1
tbl .word target0
.word target1
.word target2
...
There would be a end_sequence after the br instruction,
indicating that this is the end of the line with switch.
--
Michael Eager eager at eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
More information about the Dwarf-discuss
mailing list