C# Class LLDB.Module

Inheritance: IDisposable
Show file Open project: tritao/LLDBSharp Class Usage Examples

Public Properties

Property Type Description
NativeToManagedMap Module>.System.Collections.Concurrent.ConcurrentDictionary

Protected Properties

Property Type Description
__OriginalVTables void*[]
__PointerAdjustment int
__ownsNativeInstance bool

Public Methods

Method Description
Clear ( ) : void
Dispose ( ) : void
Equals ( object obj ) : bool
FindFirstGlobalVariable ( LLDB target, string name ) : LLDB.Value

Find the first global (or static) variable by name.

FindFirstType ( string name ) : LLDB.Type
FindFunctions ( string name, uint name_type_mask ) : LLDB.SymbolContextList

Find functions by name.

FindGlobalVariables ( LLDB target, string name, uint max_matches ) : LLDB.ValueList

Find global and static variables by name.

FindSection ( string sect_name ) : LLDB.Section
FindSymbol ( string name, LLDB type ) : LLDB.Symbol
FindSymbols ( string name, LLDB type ) : LLDB.SymbolContextList
FindTypes ( string type ) : LLDB.TypeList
GetBasicType ( LLDB type ) : LLDB.Type
GetCompileUnitAtIndex ( uint _0 ) : LLDB.CompileUnit
GetDescription ( LLDB description ) : bool
GetFileSpec ( ) : LLDB.FileSpec

Get const accessor for the module file specification.

This function returns the file for the module on the host system

that is running LLDB. This can differ from the path on the

platform since we might be doing remote debugging.

GetHashCode ( ) : int
GetObjectFileHeaderAddress ( ) : LLDB.Address
GetPlatformFileSpec ( ) : LLDB.FileSpec

Get accessor for the module platform file specification.

Platform file refers to the path of the module as it is known on

the remote system on which it is being debugged. For local

debugging this is always the same as Module::GetFileSpec(). But

remote debugging might mention a file '/usr/lib/liba.dylib'

which might be locally downloaded and cached. In this case the

platform file could be something like:

'/tmp/lldb/platform-cache/remote.host.computer/usr/lib/liba.dylib'

The file could also be cached in a local developer kit directory.

GetRemoteInstallFileSpec ( ) : LLDB.FileSpec

Get accessor for the remote install path for a module.

When debugging to a remote platform by connecting to a remote

platform, the install path of the module can be set. If the

install path is set, every time the process is about to launch

the target will install this module on the remote platform prior

to launching.

GetSectionAtIndex ( uint idx ) : LLDB.Section
GetSymbolAtIndex ( uint idx ) : LLDB.Symbol
GetSymbolFileSpec ( ) : LLDB.FileSpec

Get accessor for the symbol file specification.

When debugging an object file an additional debug information can

be provided in separate file. Therefore if you debugging something

like '/usr/lib/liba.dylib' then debug information can be located

in folder like '/usr/lib/liba.dylib.dSYM/'.

GetTypeByID ( ulong uid ) : LLDB.Type

Get a type using its type ID.

Each symbol file reader will assign different user IDs to their

types, but it is sometimes useful when debugging type issues to

be able to grab a type using its type ID.

For DWARF debug info, the type ID is the DIE offset.

GetTypes ( uint type_mask ) : LLDB.TypeList

Get all types matching

from debug info in this

module.

GetVersion ( uint &versions, uint num_versions ) : uint

Get the module version numbers.

Many object files have a set of version numbers that describe

the version of the executable or shared library. Typically there

are major, minor and build, but there may be more. This function

will extract the versions from object files if they are available.

If

is NULL, or if

is 0, the return

value will indicate how many version numbers are available in

this object file. Then a subsequent call can be made to this

function with a value of

and

that

has enough storage to store some or all version numbers.

IsValid ( ) : bool
Module ( ) : System
Module ( LLDB rhs ) : System
Module ( LLDB process, ulong header_addr ) : System
ResolveFileAddress ( ulong vm_addr ) : LLDB.Address
ResolveSymbolContextForAddress ( LLDB addr, uint resolve_scope ) : LLDB.SymbolContext
SetPlatformFileSpec ( LLDB platform_file ) : bool
SetRemoteInstallFileSpec ( LLDB file ) : bool

Set accessor for the remote install path for a module.

When debugging to a remote platform by connecting to a remote

platform, the install path of the module can be set. If the

install path is set, every time the process is about to launch

the target will install this module on the remote platform prior

to launching.

If

specifies a full path to an install location, the

module will be installed to this path. If the path is relative

(no directory specified, or the path is partial like "usr/lib"

or "./usr/lib", then the install path will be resolved using

the platform's current working directory as the base path.

__CreateInstance ( Module native, bool skipVTables = false ) : Module
__CreateInstance ( global native, bool skipVTables = false ) : Module
operator ( ) : bool

Protected Methods

Method Description
Dispose ( bool disposing ) : void
Module ( void native, bool skipVTables = false ) : System

Private Methods

Method Description
Module ( Module native, bool skipVTables = false ) : System
__CopyValue ( Module native ) : void*

Method Details

Clear() public method

public Clear ( ) : void
return void

Dispose() public method

public Dispose ( ) : void
return void

Dispose() protected method

protected Dispose ( bool disposing ) : void
disposing bool
return void

Equals() public method

public Equals ( object obj ) : bool
obj object
return bool

FindFirstGlobalVariable() public method

Find the first global (or static) variable by name.

public FindFirstGlobalVariable ( LLDB target, string name ) : LLDB.Value
target LLDB /// A valid SBTarget instance representing the debuggee. ///
name string /// The name of the global or static variable we are looking /// for. ///
return LLDB.Value

FindFirstType() public method

public FindFirstType ( string name ) : LLDB.Type
name string
return LLDB.Type

FindFunctions() public method

Find functions by name.

public FindFunctions ( string name, uint name_type_mask ) : LLDB.SymbolContextList
name string /// The name of the function we are looking for. ///
name_type_mask uint /// A logical OR of one or more FunctionNameType enum bits that /// indicate what kind of names should be used when doing the /// lookup. Bits include fully qualified names, base names, /// C++ methods, or ObjC selectors. /// See FunctionNameType for more details. ///
return LLDB.SymbolContextList

FindGlobalVariables() public method

Find global and static variables by name.

public FindGlobalVariables ( LLDB target, string name, uint max_matches ) : LLDB.ValueList
target LLDB /// A valid SBTarget instance representing the debuggee. ///
name string /// The name of the global or static variable we are looking /// for. ///
max_matches uint /// Allow the number of matches to be limited to ///
return LLDB.ValueList

FindSection() public method

public FindSection ( string sect_name ) : LLDB.Section
sect_name string
return LLDB.Section

FindSymbol() public method

public FindSymbol ( string name, LLDB type ) : LLDB.Symbol
name string
type LLDB
return LLDB.Symbol

FindSymbols() public method

public FindSymbols ( string name, LLDB type ) : LLDB.SymbolContextList
name string
type LLDB
return LLDB.SymbolContextList

FindTypes() public method

public FindTypes ( string type ) : LLDB.TypeList
type string
return LLDB.TypeList

GetBasicType() public method

public GetBasicType ( LLDB type ) : LLDB.Type
type LLDB
return LLDB.Type

GetCompileUnitAtIndex() public method

public GetCompileUnitAtIndex ( uint _0 ) : LLDB.CompileUnit
_0 uint
return LLDB.CompileUnit

GetDescription() public method

public GetDescription ( LLDB description ) : bool
description LLDB
return bool

GetFileSpec() public method

Get const accessor for the module file specification.

This function returns the file for the module on the host system

that is running LLDB. This can differ from the path on the

platform since we might be doing remote debugging.

public GetFileSpec ( ) : LLDB.FileSpec
return LLDB.FileSpec

GetHashCode() public method

public GetHashCode ( ) : int
return int

GetObjectFileHeaderAddress() public method

public GetObjectFileHeaderAddress ( ) : LLDB.Address
return LLDB.Address

GetPlatformFileSpec() public method

Get accessor for the module platform file specification.

Platform file refers to the path of the module as it is known on

the remote system on which it is being debugged. For local

debugging this is always the same as Module::GetFileSpec(). But

remote debugging might mention a file '/usr/lib/liba.dylib'

which might be locally downloaded and cached. In this case the

platform file could be something like:

'/tmp/lldb/platform-cache/remote.host.computer/usr/lib/liba.dylib'

The file could also be cached in a local developer kit directory.

public GetPlatformFileSpec ( ) : LLDB.FileSpec
return LLDB.FileSpec

GetRemoteInstallFileSpec() public method

Get accessor for the remote install path for a module.

When debugging to a remote platform by connecting to a remote

platform, the install path of the module can be set. If the

install path is set, every time the process is about to launch

the target will install this module on the remote platform prior

to launching.

public GetRemoteInstallFileSpec ( ) : LLDB.FileSpec
return LLDB.FileSpec

GetSectionAtIndex() public method

public GetSectionAtIndex ( uint idx ) : LLDB.Section
idx uint
return LLDB.Section

GetSymbolAtIndex() public method

public GetSymbolAtIndex ( uint idx ) : LLDB.Symbol
idx uint
return LLDB.Symbol

GetSymbolFileSpec() public method

Get accessor for the symbol file specification.

When debugging an object file an additional debug information can

be provided in separate file. Therefore if you debugging something

like '/usr/lib/liba.dylib' then debug information can be located

in folder like '/usr/lib/liba.dylib.dSYM/'.

public GetSymbolFileSpec ( ) : LLDB.FileSpec
return LLDB.FileSpec

GetTypeByID() public method

Get a type using its type ID.

Each symbol file reader will assign different user IDs to their

types, but it is sometimes useful when debugging type issues to

be able to grab a type using its type ID.

For DWARF debug info, the type ID is the DIE offset.

public GetTypeByID ( ulong uid ) : LLDB.Type
uid ulong /// The type user ID. ///
return LLDB.Type

GetTypes() public method

Get all types matching

from debug info in this

module.

public GetTypes ( uint type_mask ) : LLDB.TypeList
type_mask uint /// A bitfield that consists of one or more bits logically OR'ed /// together from the lldb::TypeClass enumeration. This allows /// you to request only structure types, or only class, struct /// and union types. Passing in lldb::eTypeClassAny will return /// all types found in the debug information for this module. ///
return LLDB.TypeList

GetVersion() public method

Get the module version numbers.

Many object files have a set of version numbers that describe

the version of the executable or shared library. Typically there

are major, minor and build, but there may be more. This function

will extract the versions from object files if they are available.

If

is NULL, or if

is 0, the return

value will indicate how many version numbers are available in

this object file. Then a subsequent call can be made to this

function with a value of

and

that

has enough storage to store some or all version numbers.

public GetVersion ( uint &versions, uint num_versions ) : uint
versions uint /// A pointer to an array of uint32_t types that is /// long. If this value is NULL, the return value will indicate /// how many version numbers are required for a subsequent call /// to this function so that all versions can be retrieved. If /// the value is non-NULL, then at most /// of the /// existing versions numbers will be filled into /// If there is no version information available, /// will be filled with /// UINT32_MAX values /// and zero will be returned. ///
num_versions uint /// The maximum number of entries to fill into /// If /// this value is zero, then the return value will indicate /// how many version numbers there are in total so another call /// to this function can be make with adequate storage in /// /// to get all of the version numbers. If /// is less than the actual number of version /// numbers in this object file, only /// will be /// filled into /// (if /// is non-NULL). ///
return uint

IsValid() public method

public IsValid ( ) : bool
return bool

Module() public method

public Module ( ) : System
return System

Module() public method

public Module ( LLDB rhs ) : System
rhs LLDB
return System

Module() public method

public Module ( LLDB process, ulong header_addr ) : System
process LLDB
header_addr ulong
return System

Module() protected method

protected Module ( void native, bool skipVTables = false ) : System
native void
skipVTables bool
return System

ResolveFileAddress() public method

public ResolveFileAddress ( ulong vm_addr ) : LLDB.Address
vm_addr ulong
return LLDB.Address

ResolveSymbolContextForAddress() public method

public ResolveSymbolContextForAddress ( LLDB addr, uint resolve_scope ) : LLDB.SymbolContext
addr LLDB
resolve_scope uint
return LLDB.SymbolContext

SetPlatformFileSpec() public method

public SetPlatformFileSpec ( LLDB platform_file ) : bool
platform_file LLDB
return bool

SetRemoteInstallFileSpec() public method

Set accessor for the remote install path for a module.

When debugging to a remote platform by connecting to a remote

platform, the install path of the module can be set. If the

install path is set, every time the process is about to launch

the target will install this module on the remote platform prior

to launching.

If

specifies a full path to an install location, the

module will be installed to this path. If the path is relative

(no directory specified, or the path is partial like "usr/lib"

or "./usr/lib", then the install path will be resolved using

the platform's current working directory as the base path.

public SetRemoteInstallFileSpec ( LLDB file ) : bool
file LLDB /// A file specification object. ///
return bool

__CreateInstance() public static method

public static __CreateInstance ( Module native, bool skipVTables = false ) : Module
native Module
skipVTables bool
return Module

__CreateInstance() public static method

public static __CreateInstance ( global native, bool skipVTables = false ) : Module
native global
skipVTables bool
return Module

operator() public static method

public static operator ( ) : bool
return bool

Property Details

NativeToManagedMap public static property

public static System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap
return Module>.System.Collections.Concurrent.ConcurrentDictionary

__OriginalVTables protected property

protected void*[] __OriginalVTables
return void*[]

__PointerAdjustment protected property

protected int __PointerAdjustment
return int

__ownsNativeInstance protected property

protected bool __ownsNativeInstance
return bool