Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Location.cs « Mono.Debugger.Soft « Mono.Debugger.Soft - github.com/mono/debugger-libs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: be3a8cbf7496b0cffa229c5e4d24fd0b0f2e41b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
using System;

namespace Mono.Debugger.Soft
{
	public class Location : Mirror
	{
		MethodMirror method;
		//long native_addr;
		int il_offset;
		string source_file;
		int line_number;
		byte[] hash;
		int column_number;
		int end_line_number;
		int end_column_number;
		
		internal Location (VirtualMachine vm, MethodMirror method, long native_addr, int il_offset, string source_file, int line_number, int column_number, int end_line_number, int end_column_number, byte[] hash) : base (vm, 0) {
			this.method = method;
			//this.native_addr = native_addr;
			this.il_offset = il_offset;
			this.source_file = source_file;
			this.line_number = line_number;
			this.hash = hash;
			this.column_number = column_number;
			this.end_line_number = end_line_number;
			this.end_column_number = end_column_number;
		}

		public MethodMirror Method {
			get {
				return method;
			}
		}

		public int ILOffset {
			get {
				return il_offset;
			}
		}

		public string SourceFile {
			get {
				return source_file;
			}
	    }

		public int LineNumber {
			get {
				return line_number;
			}
			set {
				this.line_number = value;
			}
		}

		// Since protocol version 2.19, 0 in earlier protocol versions
		public int ColumnNumber {
			get {
				return column_number;
			}
	    }

		// Since protocol version 2.32, -1 in earlier protocol versions, or if not available
		public int EndLineNumber {
			get {
				return end_line_number;
			}
	    }

		// Since protocol version 2.32, -1 in earlier protocol versions, or if not available
		public int EndColumnNumber {
			get {
				return end_column_number;
			}
	    }

		// MD5 hash of source file
		// Since protocol version 2.14, null in earlier protocol versions
		public byte[] SourceFileHash {
			get {
				return hash;
			}
		}

		public override string ToString () {
			if (EndLineNumber != -1 && EndColumnNumber != -1)
				return String.Format ("{0}+0x{1:x} at {2}:[{3}:{4}-{5}:{6}]", Method.FullName, ILOffset, SourceFile, LineNumber, ColumnNumber, EndLineNumber, EndColumnNumber);
			else
				return String.Format ("{0}+0x{1:x} at {2}:{3}", Method.FullName, ILOffset, SourceFile, LineNumber);
		}
    }
}