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

Assembly.cs « Mono.Debugging.Client « Mono.Debugging - github.com/mono/debugger-libs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0963750d162e387a66b46d2fa97cf41faf8ad245 (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
//
// Assembly.cs
//
// Author:
//       Jonathan Chang <t-jochang@microsoft.com>
//
// Copyright (c) 2022 
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
namespace Mono.Debugging.Client
{
	/// <summary>
	/// Represents the assembly loaded during the debugging session.
	/// </summary>
	public class Assembly
	{
		public Assembly (string name, string path, bool optimized, bool userCode, string symbolStatus, string symbolFile, int? order, string version, string timestamp, string address, string process, string appdomain, long? processId, bool hasSymbol = false, bool isDynamic = false)
		{
			Name = name;
			Path = path;
			Optimized = optimized;
			SymbolStatus = symbolStatus;
			SymbolFile = symbolFile;
			Order = order.GetValueOrDefault (-1);
			TimeStamp = timestamp;
			Address = address;
			Process = process;
			AppDomain = appdomain;
			Version = version;
			UserCode = userCode;
			ProcessId = processId;
			IsDynamic = isDynamic;
			HasSymbols = hasSymbol;
		}

		public Assembly (string path)
		{
			Path = path;
		}

		/// <summary>
		/// Represents the name of the assembly.
		/// </summary>
		public string Name { get; private set; }

		/// <summary>
		/// Represents the local path of the assembly is loaded from.
		/// </summary>
		public string Path { get; private set; }

		/// <summary>
		/// Shows if the assembly has been optimized, true if the assembly is optimized.
		/// </summary>
		public bool Optimized { get; private set; }

		/// <summary>
		/// Shows if the assembly is considered 'user code' by a debugger that supports 'Just My Code'.True if it's considered.
		/// </summary>
		public bool UserCode { get; private set; }

		/// <summary>
		/// Represents the Description on if symbols were found for the assembly (ex: 'Symbols Loaded', 'Symbols not found', etc.
		/// </summary>
		public string SymbolStatus { get; private set; }

		/// <summary>
		/// Represents the Logical full path to the symbol file. The exact definition is implementation defined.
		/// </summary>
		public string SymbolFile { get; private set; }

		/// <summary>
		/// Represents the order in which the assembly was loaded.
		/// </summary>
		public int Order { get; private set; } = -1;

		/// <summary>
		/// Represents the version of assembly.
		/// </summary>
		public string Version { get; private set; }

		/// <summary>
		/// Represents the time when the assembly was built in the units of UNIX timestamp formatted as a 64-bit unsigned decimal number in a string.
		/// </summary>
		public string TimeStamp { get; private set; }

		/// <summary>
		/// Represents the Address where the assembly was loaded as a 64-bit unsigned decimal number.
		/// </summary>
		public string Address { get; private set; }

		/// <summary>
		/// Represent the process name and process ID the assembly is loaded. 
		/// </summary>
		public string Process { get; private set; }

		/// <summary>
		/// Represent the name of the AppDomain where the assembly is loaded.
		/// </summary>
		public string AppDomain { get; private set; }

		/// <summary>
		/// Represent the process ID the assembly is loaded. 
		/// </summary>
		public long? ProcessId { get; private set; } = -1;

		/// <summary>
		/// Indicates if the assembly has symbol file. Mainly use for mono project.
		/// </summary>
		public bool HasSymbols { get; private set; }

		/// <summary>
		/// Indicate if the assembly is a dynamic. Mainly use for mono project. 
		/// </summary>
		public bool IsDynamic { get; private set; }
	}
}