Show / Hide Table of Contents

Class ClrAssemblyReader

Reads information about assemblies in the CLR isntances of external processes using ClrMD

Inheritance
System.Object
ClrAssemblyReader
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: CilTools.Runtime
Assembly: CilTools.Runtime.dll
Syntax
public class ClrAssemblyReader

Constructors

ClrAssemblyReader(ClrRuntime)

Creates ClrAssemblyReader to read information from the specified CLR instance

Declaration
public ClrAssemblyReader(ClrRuntime r)
Parameters
Type Name Description
Microsoft.Diagnostics.Runtime.ClrRuntime r

Source CLR instance

Properties

SourceRuntime

Gets the CLR instance associated with this ClrAssemblyReader

Declaration
public ClrRuntime SourceRuntime { get; }
Property Value
Type Description
Microsoft.Diagnostics.Runtime.ClrRuntime

Methods

AddPreloadedAssembly(Assembly)

Adds the specified assembly into the preloaded assembly collection

Declaration
public void AddPreloadedAssembly(Assembly ass)
Parameters
Type Name Description
System.Reflection.Assembly ass

Preloaded assembly instance

Remarks

Adding preloaded assemblies enables some CilTools.Runtime mechanisms to avoid expensive AssemblyReader.Read calls. The preloaded assembly must implement ITokenResolver interface to be useful.

Exceptions
Type Condition
System.ArgumentNullException

Assembly is null

ClearPreloadedAssemblies()

Removes all assemblies from the preloaded assembly collection

Declaration
public void ClearPreloadedAssemblies()

EnumerateMethods(Process)

Gets the collection of all methods in the specified process

Declaration
public static IEnumerable<MethodBase> EnumerateMethods(Process process)
Parameters
Type Name Description
System.Diagnostics.Process process

Source process

Returns
Type Description
System.Collections.Generic.IEnumerable<System.Reflection.MethodBase>

EnumerateModuleMethods(Process, String)

Gets the collection of all methods defined in the specified module of the process

Declaration
public static IEnumerable<MethodBase> EnumerateModuleMethods(Process process, string modulename = "")
Parameters
Type Name Description
System.Diagnostics.Process process

Source process

System.String modulename

Name of PE module file (without full path), or an empty string to use main module

Returns
Type Description
System.Collections.Generic.IEnumerable<System.Reflection.MethodBase>

GetDynamicMethods()

Gets the pseudo-assembly that represents the collection of dynamic methods in the process containing the CLR instance

Declaration
public DynamicMethodsAssembly GetDynamicMethods()
Returns
Type Description
DynamicMethodsAssembly

GetDynamicMethods(Process)

Gets the pseudo-assembly that represents the collection of dynamic methods in the specified process

Declaration
public static DynamicMethodsAssembly GetDynamicMethods(Process process)
Parameters
Type Name Description
System.Diagnostics.Process process

Source process

Returns
Type Description
DynamicMethodsAssembly

GetMemoryImage(ClrModule)

Gets the executable image data for the specified module

Declaration
public static MemoryImage GetMemoryImage(ClrModule module)
Parameters
Type Name Description
Microsoft.Diagnostics.Runtime.ClrModule module

The ClMD module object

Returns
Type Description
MemoryImage

In-memory executable image data, or null if the operation failed

Remarks

This method gets the executable image data loaded into the target process. This enables you to inspect that image with PE reader libraries without the extra cost of reading the image from file. The method can fail if the memory pages where the image is stored are inaccessible. It also does not work for memory-only dynamic modules that don't have the backing PE image.

Exceptions
Type Condition
System.ArgumentNullException

module is null

Read(ClrModule)

Gets the assembly information object for the specified ClrMD module object

Declaration
public ClrAssemblyInfo Read(ClrModule module)
Parameters
Type Name Description
Microsoft.Diagnostics.Runtime.ClrModule module

ClrMD module object

Returns
Type Description
ClrAssemblyInfo

Read(String)

Gets the assembly information object for the specified module name

Declaration
public ClrAssemblyInfo Read(string modulename)
Parameters
Type Name Description
System.String modulename

Name of PE module file (without full path)

Returns
Type Description
ClrAssemblyInfo
Back to top CIL Tools (published from sources in GitHub repository).
Generated by DocFX