Represents a unique location in the bytecode.
It comprises the
where it is contained, the offset therein and the
corresponding line number in the source file
(may be -1 if it is unknown).
Consider the following pseudo-bytecode example
which contains code location comments:
public class Test
// class "Test", member "field", line 3, offset 0
public String field;
public String toString()
// class "Test", member "toString", line 6, offset 0
// class "Test", member "toString", line 6, offset 1
getfield #1 <Test.field : Ljava/lang/String;>
// class "Test", member "toString", line 6, offset 4
Inside methods: Like each location, instructions
inside methods have a line number. But as there may be
several expressions on the same line, to correctly identify
each instruction we also need their bytecode offset.
getfield instruction inside
has the offset 1.
Fields: In this case
A field location has a line number (3 in this example)
but no offset, as this concept is only applicable to