void generate_line_number(List<LineEntry> lines, TargetAddress address,
int offset, ref int last_line)
{
C.LineNumberTable lnt = entry.GetLineNumberTable ();
C.LineNumberEntry[] line_numbers = lnt.LineNumbers;
for (int i = line_numbers.Length - 1; i >= 0; i--) {
C.LineNumberEntry lne = line_numbers [i];
if (lne.Offset > offset)
continue;
if (lne.Row != last_line) {
int file = lne.File != entry.CompileUnit.SourceFile.Index ? lne.File : 0;
bool hidden = lne.IsHidden;
SourceRange? range = null;
if (lne.SourceRange != null)
range = new SourceRange (lne.SourceRange.StartLine, lne.SourceRange.EndLine,
lne.SourceRange.StartColumn, lne.SourceRange.EndColumn);
lines.Add (new LineEntry (address, file, lne.Row, hidden, range));
last_line = lne.Row;
}
break;
}
}