示例#1
0
文件: Method.cs 项目: baulig/debugger
        public LineEntry(TargetAddress address, int file, int line, bool is_hidden,
				  SourceRange? source_range)
        {
            this.Address = address;;
            this.File = file;
            this.Line = line;
            this.IsHidden = is_hidden;
            this.SourceRange = source_range;
        }
示例#2
0
            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;
                }
            }
示例#3
0
        public SourceAddress(SourceFile file, SourceBuffer buffer, int row,
				      int line_offset, int line_range, SourceRange? source_range)
            : this(file, buffer, row, line_offset, line_range)
        {
            this.source_range = source_range;
        }